写入CSV文件,但每次在R中的循环中使用不同的行

时间:2016-07-06 20:14:27

标签: r loops csv

我正在创建一个名为“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)

1 个答案:

答案 0 :(得分:0)

在循环内部,如果要通过追加将数据行的行写入文件,而不是在每次写入时覆盖文件,则可以使用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,否则每次附加到文件时,您都会在数据集的中间添加另一个标题行