2016-09-06 173 views
2

我有兩個數據框的列表。我想循環列表併爲每個數據框寫入一個CSV,並在數據框名稱後面命名。如何從數據框列表中寫入多個CSV文件?

library(ggplot2) 
myList <- list(diamonds, cars) 
for(i in mylist){ 
    write.csv(df, paste0(names(myList[i]),".csv")) 
} 

但這只是輸出一個CSV文件名.csvcars數據。

我該如何解決這個問題,所以我有兩個名爲diamonds.csvcars.csv的CSV,每個都有正確的數據?

+0

據透露,一般一個好主意,使你的例子在自己的重現性。在這種情況下,它會因爲鑽石不在R中而中斷。您可以在代碼中添加一個'library(whatever_package)'行來修復它。 – Frank

+1

@Frank或者只是'data(「diamonds」,package =「ggplot2」)' –

回答

9

一些事情。

  1. myList沒有任何名稱,所以你實際上並沒有命名你的文件。
  2. 一旦你給myList的名字,你會做的比沿列表
  3. 你在你的for循環使用df更好地索引一起的名字,但就是沒有在任何地方定義。

這應該工作(未經測試)

myList <- list(diamonds = diamonds, 
       cars = cars) 
for(i in names(mylist)){ 
    write.csv(myList[[i]], paste0(i,".csv")) 
} 
3

您還可以使用mapply

myList <- list(diamonds = diamonds, 
       cars = cars) 
mapply(write.csv, myList, file=paste0(names(myList), '.csv')) 
相關問題