2016-09-06 115 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')) 
相关问题