使用R将多行文本写入一个文件

use*_*976 0 r

我正在使用write()以这种方式将多行写入同一文件:

filename='out.txt'

write(c("\n\n","No of blues =", nrow(data1)), file=filename,append=FALSE)
write(c("\n\n","No of greens =", nrow(data2)), file=filename,append=Append)
write(c("\n\n","No of reds =", nrow(data3)), file=filename,append=Append)
Run Code Online (Sandbox Code Playgroud)

data1,data2和data3是变量名.

但是我遇到了以下错误:

Error in cat(list(...), file, sep, fill, labels, append) : 
 argument 1 (type 'list') cannot be handled by 'cat'
Run Code Online (Sandbox Code Playgroud)

对于这个问题,R有解决方案吗?

Spa*_*man 7

猜测,你正在尝试write数据框架.这是猜测,因为你给我们的线条应该有效.我不相信他们会给出错误.在这里提问的一个重要部分是自己做一些工作来找出错误的位置,并提供产生错误的自包含代码.像这样不:

Append=TRUE
filename='out.txt'
data1=data.frame(x=1:10)
data2=data.frame(y=1:3)
data3=data.frame(z=99)
write(c("\n\n","No of blues =", nrow(data1)), file=filename,append=FALSE)
write(c("\n\n","No of greens =", nrow(data2)), file=filename,append=Append)
write(c("\n\n","No of reds =", nrow(data3)), file=filename,append=Append)
Run Code Online (Sandbox Code Playgroud)

如果我运行它(如果你也运行),那么我不会收到错误.但试试这个:

write(c("\n\n","data 1 is ", data1), file=filename,append=Append)
Run Code Online (Sandbox Code Playgroud)

看起来像:

Error in cat(list(...), file, sep, fill, labels, append) : 
  argument 1 (type 'list') cannot be handled by 'cat'
Run Code Online (Sandbox Code Playgroud)

完全是你的错误.也许那就是你在做什么.我们不知道,因为我们没有任何代码来创建该错误.

如果要将数据帧写入文件,请使用write.table.