【发布时间】:2021-08-16 23:18:41
【问题描述】:
我有一个要导出为 csv 的数据框列表。我试过了:
for (i in listofdf){
write.csv(listofdf[i], file = paste(names(listofdf)[i],".csv", sep=""), row.names = FALSE)
}
并得到:Error in listofdf[i] : invalid subscript type 'list'。我read 我正在将列表数据类型输入到需要向量的进程中,并尝试应用给定的解决方案:unlist(listofdf),但我得到的只是一个庞大的数值列表,我不知道如何处理。
然后我尝试了一个找到 here 的解决方案,它适用于给定的示例,但是当我尝试应用时:
sapply(names(listofdf),
function (x) write.table(listofdf[x],
file = paste(names(listofdf)[x],".csv", sep=""),
row.names = FALSE))
但是当我尝试它时,它只导出一个名为 NA.csv 的文件。您知道如何使这些解决方案发挥作用吗?
【问题讨论】:
-
它们必须是 csv 吗?如果没有,
writexl::write_xlsx会将列表的每个元素写入 Excel 工作簿中的工作表。它是矢量化的,因此您不需要循环,它使用列表名称作为工作表名称。 -
用
[[而不是[引用列表元素。 -
也可以在你的代码中尝试
listofdf[[i]] -
Csv 是我习惯的格式,但我可以尝试其他格式。一两个
[listofdf[[i]]的相同问题给出了相同的错误(无效的下标类型“列表”),但listofdf[[1]]有效