如何从数据框列表中写入多个CSV文件?

时间:2016-09-06 19:21:13

标签: r csv

我有一个包含两个数据框的列表。我想循环遍历列表并为每个数据帧写一个CSV,并在数据帧名称后面命名。

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

但这仅输出一个CSV文件名.csv,其中包含来自cars的数据。

如何解决此问题,以便我有两个名为diamonds.csvcars.csv的CSV,每个都有正确的数据?

2 个答案:

答案 0 :(得分:11)

一些事情。

  1. myList没有任何名称,因此您实际上并没有命名文件。
  2. 一旦您提供myList名称,您最好在名称上编制索引而不是列表
  3. 您在df循环中使用for,但未在任何地方定义。
  4. 这应该有效(未经测试)

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

答案 1 :(得分:5)

您还可以使用mapply

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