簡體   English   中英

如何在R中的循環中將多個數據幀寫入單個csv文件?

[英]how to write multiple dataframe to a single csv file in a loop in R?

我想在單個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文件中,而所有其他數據幀以連續方式復制一樣?

先感謝您

兩種方法; 如果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
  )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM