从R中的目录列表创建文件列表
我有许多目录的列表,每个目录中有5个文件,我想从每个目录中的这些文件中选择一个(例如,让我们说一个扩展名为.txt的目录)并编译这些.txt文件的列表…我如何创建一个循环,从R中的目录列表中选择txt文件?您可以执行以下操作:从R中的目录列表创建文件列表,r,list,for-loop,R,List,For Loop,我有许多目录的列表,每个目录中有5个文件,我想从每个目录中的这些文件中选择一个(例如,让我们说一个扩展名为.txt的目录)并编译这些.txt文件的列表…我如何创建一个循环,从R中的目录列表中选择txt文件?您可以执行以下操作: dir(path = ".", pattern = "\\.txt$", full.names = TRUE, recursive = TRUE) 其中,path是包含要查找的所有文件夹的根,pattern是与感兴趣的文件匹配的正则表达式(在本例中,所有扩展名为.txt
dir(path = ".", pattern = "\\.txt$", full.names = TRUE, recursive = TRUE)
其中,
path
是包含要查找的所有文件夹的根,pattern
是与感兴趣的文件匹配的正则表达式(在本例中,所有扩展名为.txt
的文件,full.names
返回文件的完整路径,recursive
浏览path
中的所有子订单。这将返回一个向量,其中包含与查询匹配的文件的完整路径。如果dirs
中有目录名列表,
您可以将所有文件中的.txt
文件作为向量,其中包含:
files <- unlist(lapply(dirs, function(dir) list.files(path = dir, pattern = '\\.txt$')))
fileslist.files
已经是一个向量化函数,因此您可以将目录向量传递给它,无需循环
my_dirs <- c("foo/bar", "foo/baz")
all_text_files <- list.files(my_dirs, pattern = "\\.txt$", full.names = TRUE)
像这样使用lappy
:lappy(dirs,function(x)list.files(x,'.txt$',full.names=TRUE)
其中dirs
是你的目录谢谢你sinQueso!谢谢你Nathan!
my_dirs <- c("foo/bar", "foo/baz")
all_text_files <- list.files(my_dirs, pattern = "\\.txt$", full.names = TRUE)
split(all_text_files, dirname(all_text_files))