12

我有 3 个数据框,我希望它们写在一个单独的 .csv 文件中,一个在其他文件之上,而不是在同一个表中。因此,一个 csv 文件中有 3 个不同的表。它们都有相同的尺寸。

问题在于write.csv:它不包含“附加”功能

的问题write.table:Excel 2010 无法很好地读取来自的 csv 文件,write.table就像来自write.csv

这是 <code>write.csv</code>

这是 <code>write.table</code>

帖子我已经阅读并且我无法找到解决问题的方法:

解决方案 ?

4

2 回答 2

26

write.csv只需write.table在后台调用,并带有适当的参数。所以你可以通过 3 次调用来实现你想要的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)

实际上,您可以通过使用 rbind 将数据帧组合成单个 df,然后调用 write.csv 一次来避免整个问题。

write.csv(rbind(df1, d32, df3), "filename.csv")
于 2013-07-16T13:18:18.813 回答
13

我们使用sink文件:

# Sample dataframes:
df1 = iris[1:5, ]
df2 = iris[20:30, ]

# Start a sink file with a CSV extension
sink('multiple_df_export.csv')

 # Write the first dataframe, with a title and final line separator 
cat('This is the first dataframe')
write.csv(df1)
cat('____________________________')

cat('\n')
cat('\n')

# Write the 2nd dataframe to the same sink
cat('This is the second dataframe')
write.csv(df2)
cat('____________________________')

# Close the sink
sink()
于 2017-07-22T09:29:26.613 回答