2017-10-12 47 views
0

我有一個腳本,它將一個文件夾中的原始csv文件轉換成一個名爲「analyze」的函數(文件名)中描述的方法中的數據,並將值控制檯。當我嘗試write.csv這些值時,它只給出函數的最後一個值。如果每個文件夾有一定數量的文件,我只需通過程序執行每個特定的csv文件,例如說[1:5],然後在/ write.csv中設置一個矩陣。但是,目錄中可能會有無數的文件,所以這不起作用(我認爲?)。我如何將潛在的無限函數輸出導出到csv文件?我已經在函數定義之後列出了我的最後一步。它列出文件夾中的所有文件,並將函數「anaylze」應用於文件夾中的所有文件。R:將潛在的無限函數輸出導出到csv文件

filename <- list.files(path = "VCDATA", pattern = ".csv", full.names = TRUE) 
for (f in filename) { 
print(f) 
analyze(f) 
} 

最佳, 埃文

+1

也許'capture.output'?或「匯」? – Gregor

+1

您可能想要說「未知數量的輸出」,而不是「潛在的無限輸出」。 – Gregor

回答

0

很難說沒有一個重複的例子,但我認爲你必須分配分析的載體或數據框(而不是隨地吐痰出來到控制檯)的輸出。

這些方針的東西:

filename <- list.files(path = "VCDATA", pattern = ".csv", full.names = TRUE) 
results <- vector() #empty vector 

for (f in filename) { 
print(f) 
results[which(filename==f)] <- analyze(f) #assign output vector 
} 

write.csv(results, file=xxx) #write csv file when loop is finished 

我希望這回答了你的問題,但它確實依賴於分析函數的輸出格式。