Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Write different data frame in one .csv file with R

I have 3 data frame, and I want them to be written in one single .csv file, one above the others, not in a same table. So, 3 different tables in one csv file. They all have same size.

The problem with write.csv: it does not contain "append" feature

The problem with write.table: csv files from write.table are not read prettily by Excel 2010 like those from write.csv

Here is with <code>write.csv</code>

Here is with <code>write.table</code>

Post I already read and in which I could not find solution to my problem :

  • write.csv() a list of unequally sized data.frames
  • Creating a file with more than one data frame

Solution ?

like image 455
David Avatar asked Jul 16 '13 13:07

David


1 Answers

write.csv just calls write.table under the hood, with appropriate arguments. So you can achieve what you want with 3 calls to write.table.

write.table(df1, "filename.csv", col.names=TRUE, sep=",")
write.table(df2, "filename.csv", col.names=FALSE, sep=",", append=TRUE)
write.table(df3, "filename.csv", col.names=FALSE, sep=",", append=TRUE)

Actually, you could avoid the whole issue by combining your data frames into a single df with rbind, then calling write.csv once.

write.csv(rbind(df1, d32, df3), "filename.csv")
like image 177
Hong Ooi Avatar answered Nov 15 '22 14:11

Hong Ooi