打印到循环文件' R'

时间:2014-11-12 15:52:39

标签: r loops

我是'R'的初学者。我有一个循环,我移动数据帧,合并它们然后运行回归:

testsequence = seq(60,120000, by=60)
for(n in 1:length(testsequence)){
 dfshift<-tail(df, (nrow(df)-testsequence[n]))
 df1shift<-head(df1, (nrow(df1)-testsequence[n]))
 dftogether<-cbind(dfshift,df1shift)
 lm1<-lm(LPGT~Temp, data=dftogether)
 write.table(lm1, file = "OUTPUT_Sensitivity_Results.csv")
}

最后一行触发此错误消息:

"Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : 
  cannot coerce class ""lm"" to a data.frame"

有什么想法吗?此外,我想构建它,以便我不会为循环的每次迭代覆盖我的输出文件。我看到了提示以下内容的帖子:

means <- sapply(filename, function(x) mean(as.numeric(read.table(x,header=FALSE)$V4)))

然后将文件作为一个整体写入:

write.csv(data.frame(fname=filename,mean=means),file="output.csv")

但我不确定如何将它应用到我的案例中。

任何帮助将不胜感激!

宋佳

1 个答案:

答案 0 :(得分:2)

如果你想要在R的顶层运行的REPL中隐式Print打印出现在控制台的行,那么请改用:

 write( capture.output(print(lm1)),"\n",
        file="OUTPUT_Sensitivity_Results.txt",
        append=TRUE)

请注意,我更改了文件类型,因此您不会认为它是CSV文件。