2017-10-12 59 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 

我希望这回答了你的问题,但它确实依赖于分析函数的输出格式。