在R调用shell命令中将值附加到文件中

时间:2017-02-24 01:05:32

标签: r append rscript

我循环在Linux上运行一个Rscript 40次。每次运行时,它都会生成一些我应该附加到文件的统计信息。该文件应该有一个包含所有统计数据的表,附加40次。这是我的代码:
 mean_data <- mean(m)
minimum <- min(m)
 maximum <- max(m)
 standard_daviation <- sd(m)
 Range <- range(m)
 file <- "map1"
 x <-data.frame(file, mean_data,minimum,maximum,Range,standard_deviation)
 system2("echo", args = paste0(" ", x ," >> tab_1.txt" ))

预期结果是:
 file mean_data minimum maximum Range standard_deviation
[1] map1 1349 1100 1600 500 45
[2] map2 1242 1291 1628 337 38

但结果是:
[1] 1349 1100 1600 500 45
[2] 1242 1291 1628 337 38

使用write.table对我来说不是一个好选择,因为我每次都无法追加值。 我通过循环40次在shell中运行带有上述代码的脚本。

1 个答案:

答案 0 :(得分:1)

append=TRUE中使用write.table

  

append

     

逻辑。仅当文件是字符串时才相关。如果为TRUE,则将输出附加到文件。如果为FALSE,则会销毁该名称的任何现有文件。

df <- data.frame(file, mean_data,minimum,maximum,Range,standard_deviation)
if(!file.exists("filename.txt")) {
    write.table(df, "filename.txt", col.names=TRUE)
} else {
    write.table(df, "filename.txt", col.names=FALSE, append=TRUE)
}