我尝试根据文件名加载不同类别的文件。直到现在我总是使用
list<-dir(pattern=".gle$")
获取所有gle文件。现在我想加载人口bg,campo&amp; pca单独和我正在寻找一个可以在文件名中间使用的通配符,例如。
0KK_bg_SunAdj.gle
0LC_campo_SunAdj.gle
0KR_pca_SunAdj_corr.gle
我想到了像
这样的东西list<-dir(pattern=glob2rx("*something*bg*something*.gle$"))
但我尝试了?glob2rx
帮助文件中的所有示例,但没有成功。
我确信它是可能的(我的意思是;它是R ......)但我无法弄清楚......
谢谢!
答案 0 :(得分:3)
怎么样
list1<-dir(pattern="[[:print:]]*_bg_[[:print:]]*.gle")
list2<-dir(pattern="[[:print:]]*_campo_[[:print:]]*.gle")
list3<-dir(pattern="[[:print:]]*_pca_[[:print:]]*.gle")
但是这些可能会获取目录中的其他文件。如果没有,那么@RomanLuštrik可能会在上面的评论中击中头部。 编辑:实际上,@RomanLuštrik的评论会收集non.gle文件。所以上面的代码会更合适。
答案 1 :(得分:1)
我认为您需要glob2rx
功能中的其他选项来修剪头部和尾部。例如,
R> f = c("0KK_bg_SunAdj.gle", "0LC_campo_SunAdj.gle", "0KR_pca_SunAdj_corr.gle")
R> m = glob2rx("*campo*.gle", FALSE, FALSE)
R> grepl(m, f)
[1] FALSE TRUE FALSE