【问题标题】:How to structure output to write to csv within a for statement in R?如何在 R 的 for 语句中构造输出以写入 csv?
【发布时间】:2017-07-17 22:33:00
【问题描述】:

我正在使用 R 中的 for 语句对不同的个体进行条件逻辑回归分析。此代码非常简单:

for(ID in unique(Hour168Fin$BAND)){
modelone = clogit(Hour168Fin$OBSERVED ~ Hour168Fin$LNSTEPLENG + Hour168Fin$PowCross + Shrub +
strata(Hour168Fin$STEPID), data=Hour168Fin, subset = which(ID==Hour168Fin$BAND))

我对输出中非常具体的部分感兴趣,因此我对输出进行了结构化,以便准确地给出我需要的系数:

x1beta = as.numeric(summary(modelone)$coef[1,1])
x2beta = as.numeric(summary(modelone)$coef[2,1])
x3beta = as.numeric(summary(modelone)$coef[3,1])
x1SE = as.numeric(summary(modelone)$coef[1,3])
x2SE = as.numeric(summary(modelone)$coef[2,3])
x3SE = as.numeric(summary(modelone)$coef[3,3])
x1pvalue = as.numeric(summary(modelone)$coef[1,5])
x2pvalue = as.numeric(summary(modelone)$coef[2,5])
x3pvalue = as.numeric(summary(modelone)$coef[3,5])
modelAIC = AIC(modelone)

results = table(x1beta, x1SE, x1pvalue, x2beta, x2SE, x2pvalue, x2beta, x2SE, x2pvalue, modelAIC, rownames = ID)}

在 R 中,我可以看到我正在寻找的格式的所有结果,但是当我使用它来将这些结果转换为 csv 时:

write.csv = (results, file = "TrialOut.csv")

我只得到 1 个唯一 ID 的结果。我尝试将 write.csv 语句嵌入到 for 语句中,并在其外部使用它并获得相同的结果。有什么建议?我真的很困惑,因为我可以在 R 中看到结果,但似乎无法将其转换为 csv。

感谢您的宝贵时间!

【问题讨论】:

  • ID 的值只是最后一次通过 for 循环。此外,results 每次都会被覆盖。
  • 是的。我正在寻找一种将所有 ID 放入 csv 文件的方法。有什么方法可以阻止结果被覆盖?
  • 如果你在 for 循环中 write.csv 应该可以工作......你是否偶然覆盖了你的文件?如果在 for 循环内,您的文件名应该有一个索引,例如file=paste0("TrialOut_", ID, ".csv").
  • 如果您将其更改为数据框,您可以使用results <- rbind(results, .....)。在循环之前将results 设置为空数据帧,然后在之后写入。不确定它是否适用于桌子
  • 粘贴选项为每个 ID 创建了一个单独的文件。我希望将所有结果放入一个文件中。

标签: r csv output


【解决方案1】:

尝试在循环中包含write.csv 调用,并使用append = TRUE

for (...) {

# ...
# ...

write.csv(results, file = "someFile.csv", append = TRUE)

}

【讨论】:

  • 嗯。这运行但没有用。我仍然只得到了最后一个 ID 结果,并且这个错误:17: In write.csv(results, file = "TrialOut.csv", append = TRUE) :尝试设置'append'被忽略
  • 嗯,也许可以尝试使用 write.table 而不是 write.csv
  • 啊!这有效:write.table(results, file = "TrialOut.csv", append=TRUE, sep = ",", col.names = FALSE)。省略 col.names=FALSE 导致列名显示在每隔一行中 - 仅供任何可能有类似问题的人参考。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 2020-08-08
  • 2017-10-03
  • 1970-01-01
  • 2019-07-20
  • 2016-05-21
  • 1970-01-01
相关资源
最近更新 更多