我想在一个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文件而所有其他数据帧都以连续方式复制?
提前谢谢
答案 0 :(得分:2)
两种方法;如果neighbours_dataframe
是一个很长的列表,那么第一个可能会快一点(尽管我没有测试过这个)。
方法1:首先将数据框列表转换为单个数据框
按照jbaums的建议。
library(dplyr)
neighbours_dataframe_all <- rbind_all(neighbours_dataframe)
write.csv(neighbours_dataframe_all, "karate3.csv", row.names = FALSE)
方法2:使用循环,追加
正如Neal Fultz所说。
for(i in seq_along(neighbours_dataframe))
{
write.table(
neighbours_dataframe[[i]],
"karate3.csv",
append = i > 1,
sep = ",",
row.names = FALSE,
col.names = i == 1
)
}