将值附加到 R 中调用 shell 命令的文件
Append values to a file in R invoking shell commands
我在 linux 上循环到 运行 一个 Rscript 40 次。每次它 运行s,它都会生成一些我应该附加到文件中的统计信息。该文件应该有一个 table 的所有统计信息附加了 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 对我来说不是一个好的选择,因为我无法每次都附加这些值。
我正在 运行 将脚本与上述代码 shell 循环 40 次。
在write.table
中使用append=TRUE
。
append
logical. Only relevant if file is a character string. If TRUE, the output is appended to the file. If FALSE, any existing file of the name is destroyed.
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)
}
我在 linux 上循环到 运行 一个 Rscript 40 次。每次它 运行s,它都会生成一些我应该附加到文件中的统计信息。该文件应该有一个 table 的所有统计信息附加了 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 对我来说不是一个好的选择,因为我无法每次都附加这些值。 我正在 运行 将脚本与上述代码 shell 循环 40 次。
在write.table
中使用append=TRUE
。
append
logical. Only relevant if file is a character string. If TRUE, the output is appended to the file. If FALSE, any existing file of the name is destroyed.
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)
}