首页 > 解决方案 > 一行接一行地写入R中的文件

问题描述

我有以下一段代码可以一次一行地写入 R 文件。

for (i in c(1:10)){
  writeLines(as.character(i),file("output.csv"))

}

它只写了 10 个大概覆盖前面的行。如何让 R 将新行附加到现有输出?append = TRUE 不起作用。

标签: r

解决方案


append = TRUE 使用该函数cat(而不是)时确实writeLines有效,但只有在您提供cat文件时才有效,而不是在您给它一个file对象时:文件是否被附加或覆盖是文件对象本身的属性,即它需要在打开文件时指定

因此,这两项工作:

f = file('filename', open = 'a') # open in “a”ppend mode
for (i in 1 : 10) writeLines(i, f)
for (i in 1 : 10) cat(i, '\n', file = 'filename', sep = '', append = TRUE)

file在 R 中几乎不需要手动调用。

......但正如另一个答案所示,你可以(而且应该!)无论如何都要避免循环。


推荐阅读