【问题标题】:Appending text in write function [R]在写入函数中附加文本 [R]
【发布时间】:2014-10-10 01:30:04
【问题描述】:

我正在尝试在已经存在的 .txt 文件中追加一行。但是我的语法覆盖了这个文件:(

   fileConn <- file( "realization1.txt" )
      write(x =as.character(max(cumsum( rnorm( 10^7)))),
            file = fileConn,
            append = TRUE, sep = " ")


      write(x =as.character(max(cumsum( rnorm( 10^7)))),
            file = fileConn,
            append = TRUE, sep = " ")
   }

   close( fileConn )

有没有人可以解决这个问题? 感谢您的帮助!

【问题讨论】:

  • Add lines to a file的可能重复
  • 不正确。这里的答案是不同的。检查@carl解决方案

标签: r append overwrite


【解决方案1】:

我只会使用命令write.table

write.table(max(cumsum( rnorm( 10^7))),file="realization1.txt",append=TRUE,row.names=FALSE,col.names=FALSE)

write.table(max(cumsum( rnorm( 10^7))),file="realization1.txt",append=TRUE,row.names=FALSE,col.names=FALSE)

您会在“realizaion1.txt”文件中找到这两个值

【讨论】:

    【解决方案2】:

    我相信您的困难来自未能打开具有正确属性集的文件。

    如果您使用 fileConn &lt;- file( "realization1.txt" ,open="a") 创建连接,那么一切都会按您的预期工作。基本上,据我所知,write(它是 cat 的包装器)不能追加,除非文件连接是在允许“追加”的情况下打开的。

    【讨论】:

      【解决方案3】:

      您也可以使用writeLines,它比write 快大约 20 倍。如果您要附加大字符串,这会产生很大的不同。

      sink("outfile.txt", append = T)
      
      x <- as.character(max(cumsum( rnorm( 10^7))))
      writeLines(x)
      
      sink()
      

      【讨论】:

      • 那么 writeLines 和 write.table 的比较呢?
      猜你喜欢
      • 2021-10-17
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多