首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据R的前半部分对字符串进行分组?

如何根据R的前半部分对字符串进行分组?
EN

Stack Overflow用户
提问于 2018-04-12 13:09:51
回答 1查看 19关注 0票数 1

我有一个R代码,如下所示:

代码语言:javascript
运行
复制
files <- list.files(get_directory())
files <- files[grepl("*.dat$", files)]
files

其中get_directory()是我编写的返回当前目录的函数。因此,我将在我想要的目录中获取扩展名为.dat的所有文件。但是,我的文件名如下:

代码语言:javascript
运行
复制
2^5-3^3-18-simul.dat
2^5-3^3-18-uniform.dat
2^7-3^4-33-simul.dat
2^7-3^4-33-uniform.dat
...

所以,现在我想根据第一部分创建2组,所以我希望2^5-3^3-18-simul.dat2^5-3^3-18-uniform.dat是一个组,另外两个文件是一个组等等。在稍后阶段,我需要循环遍历所有组,并使用在同一组中的两个文件。由于返回的文件名已经被排序,所以我认为这里不需要一些花哨的模式匹配,我只需要像前面提到的那样将字符串向量的元素一分为二。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-12 13:11:42

我们可以使用sub创建一个分组变量来拆分“文件”

代码语言:javascript
运行
复制
split(files, sub("-[a-z].*", "", files))
#$`2^5-3^3-18`
#[1] "2^5-3^3-18-simul.dat"   "2^5-3^3-18-uniform.dat"

#$`2^7-3^4-33`
#[1] "2^7-3^4-33-simul.dat"   "2^7-3^4-33-uniform.dat"

数据

代码语言:javascript
运行
复制
files <-  c("2^5-3^3-18-simul.dat", "2^5-3^3-18-uniform.dat", 
             "2^7-3^4-33-simul.dat", "2^7-3^4-33-uniform.dat")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49797461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档