【问题标题】:Write to CSV file but use a different row each time in a loop in R写入 CSV 文件,但每次在 R 的循环中使用不同的行
【发布时间】:2016-07-06 20:14:27
【问题描述】:

我正在创建一个名为“std_summary”的数据框,它会进行一些计算并创建一个数据框。我正在为我想要分析的数据集循环这个,所以脚本将通过并创建一个新的 csv 文件,其中包含分析的数据。每个数据集将始终具有相同的列,但行可能会有所不同。我想要做的是将它写入一个 csv 文件,而不是像现在这样覆盖它自己,或者创建一个新文件。我该怎么做?我想要做的是运行计算并创建数据框。然后在将数据框写入 csv 文件时,跳过最后一行的行并写入之后。 现在这是我的代码..如果您需要其他任何东西,请告诉我!

std_summary = ddply(stds[!stds$outlier,],.(well_96,concentration),summarize,
mean_int = mean(int,na.rm=T),
std_int = sd(int,na.rm=T),
prec_cv = (std_int*100/mean_int))
std_summary$r_squared = stds.cod
std_summary$slope = stds.lm$coefficients[2]
std_summary$intercept = stds.lm$coefficients[1]
std_summary$plate_barcode = plate_barcode
#Export standards data
cat(paste0(Sys.time()," - Saving standards curve data to ",data_root,"\\standards.csv","\n"))
write.csv(std_summary,file = paste0(data_root,"\\standards_N.csv"),row.names=F)

【问题讨论】:

  • 循环在哪里?您可能应该使用lapply 执行此操作,确保为paste 一起为每个文件指定一个唯一名称。
  • 那么在将数据框写入csv文件时,跳过最后一行的行,然后写...最后一行是什么?请说明您需要如何对数据框进行切片。是否有像组/类别这样的列指示器?行数?按索引/row.names?
  • 感谢附加!

标签: r loops csv


【解决方案1】:

在您的循环中,如果您想通过附加将数据帧的行写入文件,而不是在每次写入时覆盖文件,您可以使用write.table

例子:

filename <- paste0(data_root,"\\standards_N.csv")
write.table(std_summary[3:4,], file=filename, col.names=F, append=T)
write.table(std_summary[26:30,], file=filename, col.names=F, append=T)

注意:您需要设置col.names=F,否则每次追加到文件时,您都会在数据集中间追加另一个标题行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    相关资源
    最近更新 更多