我是'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")
但我不确定如何将它应用到我的案例中。
任何帮助将不胜感激!
宋佳
答案 0 :(得分:2)
如果你想要在R的顶层运行的REPL中隐式Print打印出现在控制台的行,那么请改用:
write( capture.output(print(lm1)),"\n",
file="OUTPUT_Sensitivity_Results.txt",
append=TRUE)
请注意,我更改了文件类型,因此您不会认为它是CSV文件。