为R中列表中的每个元素创建CSV

时间:2014-07-11 06:01:58

标签: r

我有一个List L,其中每个项目都是一个数据框。我现在想要将每个项目保存在单独的csv中。我尝试了以下代码,但它没有通过。

for i in length(list) {
    write.csv(to.data.frame(list[i]), 'list_item_number_@{i}')
}

1 个答案:

答案 0 :(得分:0)

我首先将您的for循环序列放入括号中,这意味着

for i in length(list)应为for(i in 1:length(list))

接下来,to.data.frame(list[i])存在问题,因为您在列表上操作。所以这应该是to.data.frame(list[[i]])

第三,to.data.frame()是什么?我想你的意思是as.data.frame()。无论哪种方式,你可能都不需要它。

另外,我不太确定您使用'list_item_number_@{i}'做了什么,但是您应该创建与列表元素一样多的文件,并在循环中为每个文件分配[i]。如果列表的长度是3,那就是这样的东西。

files <- c("f1.csv", "f2.csv", "f3.csv")
for(i in 1:length(list)){
    write.csv(list[[i]], file = files[i], row.names = FALSE)
}

你也可能想要row.names = FALSE,以避免头痛。

... 但更多 R 方式可以使用 lapply

lapply(seq_along(list), function(i){
    write.csv(list[[i]], files[i], row.names = FALSE)
    })

将返回NULL的列表,可以通过使用invisible()

包装它来抑制