2014-07-24 115 views
-2

我有一個包含1000多個文件的文件夾。我想逐個檢查文件,但我不想在R中加載這些文件。我所做的是創建一個矩陣,並在每一行中創建一個文件路徑。通過使用文件路徑,我可以得到我想要的。所以我現在做了什麼。在R中爲矢量/矩陣數據創建函數

我開始創建一個矩陣:

path <- "/Users/mike/Desktop/folder" 
files <- list.files(path=path, pattern="*.txt") 
dt <- matrix(paste("/Users/mike/Desktop/folder", files, sep="/")) 

dt爲基質,如果我叫第一行和分析我得到了我想要的:現在

a <- dt[1,] 
analyse(a) 

我的問題是怎麼做的這自動爲100 +文件?我認爲我必須做一個功能,但問題是我不知道如何去做。

有人能幫我一下嗎?

預先感謝您。

+0

你試過了什麼?我們不能爲你做任務......向我們展示你在哪裏遇到問題? – vrajs5

+0

感謝您的回覆。我試圖創建一個自動的過程來調用R中的不同文件進行分析。所以我開始用這個代碼:path < - 「/ Users/mike/Desktop/folder」 files < - list.files(path = path,pattern =「* .txt」) datafile < - matrix(paste(「/用戶/ mike /桌面/文件夾「,文件,sep =」/「)) a < - datafile [1,] analyze(a) 現在我打電話給第一行,工作正常,但我怎麼打電話所有的行自動一個接一個? 謝謝 – klo

+0

爲您的問題添加您的邏輯...這將有助於其他人... – vrajs5

回答

0

你不需要你的第三行,如果你不喜歡這樣寫道:

path <- "/Users/mike/Desktop/folder" 
files <- list.files(path=path, pattern="*.txt", full.names =TRUE) 

而且你也不需要矩陣。你可以簡單地寫:

analysis <- list(NULL) 
for(i in 1:length(files)){ 
    analysis[[i]] <- analyse(files[i]) 
} 

analysis 
+0

非常感謝您的幫助,我做到了,但只分析最後一個文件 '爲(在文件的文件){ 我< - 分析(文件) } i' – klo

+0

你必須存儲您的分析結果正確(見編輯) – nnn

+0

我不知道,但得到只分析第一個文件,並重復10次。所以只是第一個文件分析,而不是其他人。無論如何感謝你的努力。 – klo

0

爲什麼不嘗試一個簡單的「for」循環:

mm = as.matrix(paste("file",1:10,".txt", sep="")) 
mm 
     [,1]   
[1,] "file1.txt" 
[2,] "file2.txt" 
[3,] "file3.txt" 
[4,] "file4.txt" 
[5,] "file5.txt" 
[6,] "file6.txt" 
[7,] "file7.txt" 
[8,] "file8.txt" 
[9,] "file9.txt" 
[10,] "file10.txt" 

for(i in 1:nrow(mm)) print(mm[i]) 
[1] "file1.txt" 
[1] "file2.txt" 
[1] "file3.txt" 
[1] "file4.txt" 
[1] "file5.txt" 
[1] "file6.txt" 
[1] "file7.txt" 
[1] "file8.txt" 
[1] "file9.txt" 
[1] "file10.txt" 

for(i in 1:nrow(mm)) {a = mm[i,]; analyze(a)} 
+0

感謝您的代碼,'for(i in 1:nrow(mm))print(mm [i])'show all files一個接一個,我可以用這個'分析(mm [i])'試過但不行。如果我做'分析(mm [1])'會起作用。我知道需要定製該功能,但仍不知道如何。 – klo

+0

你的代碼作品謝謝! – klo