【发布时间】:2014-11-17 07:40:55
【问题描述】:
我想在单个 CSV 文件中写入多个数据帧“neighbours_dataframe”:
我使用这一行将多个数据帧写入多个文件:
for(i in 1:vcount(karate)){
write.csv(neighbours_dataframe[[i]], file = as.character(V(karate3)$name[i]),row.names=FALSE)}
如果我使用此代码:
for(i in 1:vcount(karate)){
write.csv(neighbours_dataframe[[i]], file = "karate3.csv",row.names=FALSE)}
这只会给我 csv 文件中的最后一个数据框:
我想知道,我怎么能有一个 CSV 文件,其中的所有数据帧都以第一个数据帧的列标题刚刚写入 csv 文件的方式以及所有其他数据帧以连续方式复制的方式?
提前谢谢你
【问题讨论】:
-
如果所有 data.frames 具有相同的列名集,请尝试
do.call(rbind, neighbours_dataframe)(假设neighbours_dataframe是 data.frames 的列表),然后将结果写入 csv。如果它们不共享相同的列,请尝试dplyr::rbind_all(neighbours_dataframe)。 -
设置
append=TRUE,它应该可以工作。 -
@Neal
append不适用于write.csv- 请参阅下面的 my comment。 -
谢谢@Neal,因为 jbaums 说 append 不起作用,我收到了警告,就像第二行代码一样,什么也没发生
-
非常感谢@jbaums,它运行良好