在写入函数中附加文本 [R]

Posted

技术标签:

【中文标题】在写入函数中附加文本 [R]【英文标题】:Appending text in write function [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解决方案 【参考方案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 的比较呢?

以上是关于在写入函数中附加文本 [R]的主要内容,如果未能解决你的问题,请参考以下文章

附加到文本文件(不覆盖!)

r 写入带有日期附加到文件名的CSV文件

在 fortran 中将写入附加到 hdf5 文件

无法将条件结果附加到新列表

如何在java中的文件中循环写入或附加字符串?

Python-文件阅读(open函数)