我有一个如下所示的R代码:
files <- list.files(get_directory())
files <- files[grepl("*.dat$", files)]
files
其中get_directory()
是我写的函数,它返回当前目录。所以,我在所需的目录中获取了扩展名为.dat
的所有文件。但是,我的文件名称如下:
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.dat
和2^5-3^3-18-uniform.dat
是一个组,另外两个文件是一组等等。阶段,我需要循环遍历所有组,并使用同一组中的两个文件。因为,返回的文件名已经排序了,我认为我不需要在这里进行一些花哨的模式匹配,我只需要按照提到的方法将字符串向量的元素分组两个。
答案 0 :(得分:2)
我们可以使用sub
创建分组变量来分割&#39;文件&#39;
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"
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")