我循环在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中运行带有上述代码的脚本。
答案 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)
}