2015-03-13 35 views
0

我想知道爲什麼這不起作用,所以我決定在這裏發佈這個問題。 我正在做文本挖掘,我應該做的是迭代通過子文件夾,並閱讀每個這些子文件夾中的所有文本文件。如何使用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$") 
} 
============================================= 

如果我運行此代碼,它不會返回任何內容。 所以我嘗試了不同的命令,例如(1:長度(r.scripts)中的j)等, 但它部分返回來自第一個/最後一個文件夾的txt文件。

+1

要閱讀文本文件,您需要使用諸如'read.table'之類的函數。現在你所有的代碼都在列出文件,而不是讀取它們。 – 2015-03-13 06:47:40

回答

0

在循環中,files.v將在每次迭代時被覆蓋。嘗試這樣的:

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

然後,你可以做一些類似的事實上閱讀文件。儘管您可能需要使用嵌套循環。

+0

非常感謝您的意見! =) – prejay10 2015-03-16 06:21:53

+0

非常歡迎! – 2015-03-16 06:33:41

相關問題