如何使用R迭代子文件夹并读取里面的文本文件?

时间:2015-03-13 06:41:47

标签: r

我想知道为什么这不起作用所以我决定在这里发布这个问题。 我现在正在进行文本挖掘,而我应该做的是遍历子文件夹并读取每个子文件夹中的所有文本文件。

所以,基本上文件夹的结构是这样的:

==============================================
branch1    branch 2     txt.file
1 -------- 2002----------a
  ---------2003----------b
               ----------c
2 ---------2004----------d
  ---------2005----------e
               ----------f
.
.
==============================================

我写的代码如下:

=============================================
setwd("C:/Users/JY/Desktop/research/DATA/test")
parent.folder<-"C:/Users/JY/Desktop/research/DATA/test"
sub.folders1 <- list.dirs(parent.folder, recursive=TRUE)[-1]
sub.folders2 <- list.dirs(sub.folders1, recursive=FALSE)
r.scripts <- file.path(sub.folders2)
=============================================

问题是R无法读取每个子目录中的所有txt文件 我不明白为什么会这样。

=============================================
for (j in r.scripts){
  files.v <- dir(r.scripts,"\\.txt$")
}
=============================================

如果我运行此代码,它不会返回任何内容。 所以我尝试了不同的命令,例如for(j in 1:length(r.scripts))等, 但它部分返回第一个/最后一个文件夹中的txt文件。

1 个答案:

答案 0 :(得分:0)

在循环中,files.v将在每次迭代时被覆盖。尝试这样的事情:

files.v <- list()
for (j in seq_along(r.scripts)) {
  files.v[[j]] <- dir(r.scripts[j],"\\.txt$")
}

然后你可以做类似的事情来实际读取文件。虽然您可能需要使用嵌套循环。