在每次迭代或模拟期间将结果保存到 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 = TRUE
而 write.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
我正在尝试将模拟结果保存为 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 = TRUE
而 write.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")
因为
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