我有一个名为patients3的数据框,包含100行和129列,我使用write.csv将其写入.csv文件。
我的客户希望在此文件的开头添加几行。某些行的确切内容取决于相同数据中的变量,有些则不然。每行具有不同数量的列。第一行很简单,
FILEFORMATID 1000
我试过这段代码
line1 <- data.frame(cbind("FILEFORMATID", "1000"))
######### OUTPUT MANAGEMENT 4: WRITING FILES
write.csv(line1, paste("c:/personal/consults/ElwinWu/output", filenum, ".csv"))
write.csv(patients3, paste("c:/personal/consults/ElwinWu/output", filenum, ".csv"), quote = FALSE, append = T)
但收到了警告
警告信息:在write.csv(病人3, 粘贴(“c:/ personal / consults / ElwinWu / output”,:尝试设置 'append'被忽略
事实上,早先的文件被覆盖了。
这可以在R?
内完成由于
答案 0 :(得分:4)
我可以想到几种方法。一种方法是创建一个数据帧,然后将其写入CSV。这是一种痛苦。另一种方法是将数据体写入文件,然后将标题信息添加到该文件中,或者反过来写出标题信息,然后将csv体附加到该文件。
我首先尝试创建标头,然后附加csv秒。但是,要获得追加功能,您必须从write.csv()
切换到write.table()
以下是一个例子:
header <- "my first line"
body <- data.frame(a=rnorm(10), b=rnorm(10))
write.table(header, file="/tmp/myfile.txt", row.names=F, col.names=F, quote=F)
write.table(body, file="/tmp/myfile.txt", row.names=F, col.names=F, append=T, sep=",")
并且,正如您所料,生成的文件如下所示:
$ cat myfile.txt
my first line
1.23874432711773,-2.2589990017634
0.231896206292307,1.17882048865978
-0.314437880898758,0.902090923407546
1.4997037042092,0.626724662264575
0.0695743692981956,0.250950969342156
1.33403372000003,0.552648907461989
0.182234972030415,0.950754253582309
-0.0960762881273546,-0.714485753494804
-0.850532439053779,1.89170555264949
0.269472111643762,1.39531731667127