在每次迭代或模拟期间将结果保存到 csv 或 excel 文件

Save result to csv or an excel file during each iteration or simulation

我正在尝试将模拟结果保存为 excel 或 csv 文件。我想在每次迭代后将结果导出到这些文件之一。有简单的方法吗?以下是我试过的玩具示例:

for(i in  1 : 10){
  if(i==1){write.csv(i,"test.csv")}
  if(i > 2){write.csv(i,"test.csv",append=TRUE)}
}

在这种情况下,只保存最后一个值 10。

我相信 write.table 接受 append = TRUEwrite.csv 不接受。

help(write.table)

... arguments to write.table: append, col.names, sep, dec and qmethod cannot be altered.

for(i in 1:3){
df <- data.frame(a = sample(1:10,10), b = sample(1:10,10), c = sample(1:10,10))
write.table(df, file = "test.csv",append = TRUE,sep=",",quote=TRUE,col.names = FALSE)
}

先将结果保存在数据框中,然后再导出到 csv 怎么样?喜欢:

df <- data.frame(result = NA)
for (i in 1:10) {
  df[i, "result"] <- i
}
write.csv(df, file = "test.csv")

因为我们不能改变write.csv的一些参数,所以我们需要使用write.table ,这是一个更简单的循环版本,避免了 if 语句:

for(i in  1:10){
  write.table(i, "test.csv", sep = ",",
              row.names = FALSE, col.names = i== 1, append = i > 1)
  }

输出低于 test.scv

"x"
1
2
3
4
5
6
7
8
9
10