如何从数据框列表中写入多个CSV文件?
问题描述:
我有两个数据框的列表。我想循环列表并为每个数据框写入一个CSV,并在数据框名称后面命名。如何从数据框列表中写入多个CSV文件?
library(ggplot2)
myList <- list(diamonds, cars)
for(i in mylist){
write.csv(df, paste0(names(myList[i]),".csv"))
}
但这只是输出一个CSV文件名.csv
从cars
数据。
我该如何解决这个问题,所以我有两个名为diamonds.csv
和cars.csv
的CSV,每个都有正确的数据?
答
一些事情。
-
myList
没有任何名称,所以你实际上并没有命名你的文件。 - 一旦你给
myList
的名字,你会做的比沿列表 - 你在你的
for
循环使用df
更好地索引一起的名字,但就是没有在任何地方定义。
这应该工作(未经测试)
myList <- list(diamonds = diamonds,
cars = cars)
for(i in names(mylist)){
write.csv(myList[[i]], paste0(i,".csv"))
}
答
您还可以使用mapply
:
myList <- list(diamonds = diamonds,
cars = cars)
mapply(write.csv, myList, file=paste0(names(myList), '.csv'))
据透露,一般一个好主意,使你的例子在自己的重现性。在这种情况下,它会因为钻石不在R中而中断。您可以在代码中添加一个'library(whatever_package)'行来修复它。 – Frank
@Frank或者只是'data(“diamonds”,package =“ggplot2”)' –