从子目录中读取文件
read files from subdirectories
我有从“0001”到“0999”命名的子目录,每个子目录中都有一个名为"abc.csv"的文件。
如何读取列表中的所有这些文件?
到目前为止,这是我的方法:
abcs <- list()
for(i in seq_len(999))
eval(parse(text=paste0("abcs[[",i,"]] <- read.csv('~/mydir/0000",i,"/abc.csv')")))
但是,我必须对每个前导零的数量分别执行此操作。
一定有更简单的方法,谢谢。
我知道还有 'list.dir()' 函数。
只需在list.files
中使用递归参数
list_of_files <- list.files("~/mydir/", pattern = ".csv", recursive = T)
list_results <- lapply(list_of_files, read.csv)
这就是你要找的吗?
这个怎么样? sprintf("%04d", n) 将数字前面的零填充到所需的长度
abcs <- lapply(1:999, function(n) read.csv(paste0(sprintf("%04d", n),"/abc.csv")))
我有从“0001”到“0999”命名的子目录,每个子目录中都有一个名为"abc.csv"的文件。 如何读取列表中的所有这些文件?
到目前为止,这是我的方法:
abcs <- list()
for(i in seq_len(999))
eval(parse(text=paste0("abcs[[",i,"]] <- read.csv('~/mydir/0000",i,"/abc.csv')")))
但是,我必须对每个前导零的数量分别执行此操作。
一定有更简单的方法,谢谢。 我知道还有 'list.dir()' 函数。
只需在list.files
list_of_files <- list.files("~/mydir/", pattern = ".csv", recursive = T)
list_results <- lapply(list_of_files, read.csv)
这就是你要找的吗?
这个怎么样? sprintf("%04d", n) 将数字前面的零填充到所需的长度
abcs <- lapply(1:999, function(n) read.csv(paste0(sprintf("%04d", n),"/abc.csv")))