【问题标题】:How do I write multiple CSV files from a list of data frames?如何从数据框列表中写入多个 CSV 文件?
【发布时间】:2016-09-06 19:21:13
【问题描述】:

我有一个包含两个数据框的列表。我想遍历列表并为每个数据框编写一个 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 文件,每个文件中的数据都正确?

【问题讨论】:

  • 仅供参考,通常是让您的示例可自行重现的好主意。在这种情况下,它会中断,因为 diamonds 不在基数 R 中。您可以在代码中添加 library(whatever_package) 行来修复它。
  • @Frank 或只是data("diamonds",package="ggplot2")

标签: r csv


【解决方案1】:

一些事情。

  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"))
}

【讨论】:

    【解决方案2】:

    你也可以使用mapply:

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

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      相关资源
      最近更新 更多