R 将数据帧列表导出为csv
我有一个要导出为csv的数据帧列表。我试过:R 将数据帧列表导出为csv,r,list,csv,export,R,List,Csv,Export,我有一个要导出为csv的数据帧列表。我试过: for (i in listofdf){ write.csv(listofdf[i], file = paste(names(listofdf)[i],".csv", sep=""), row.names = FALSE) } 并且得到:listofdf[i]中的错误:无效的下标类型“list”。我发现我正在将一个列表数据类型输入一个需要向量的进程,并尝试应用给定的解决方案:unlist(listofdf
for (i in listofdf){
write.csv(listofdf[i], file = paste(names(listofdf)[i],".csv", sep=""), row.names = FALSE)
}
并且得到:listofdf[i]中的错误:无效的下标类型“list”
。我发现我正在将一个列表数据类型输入一个需要向量的进程,并尝试应用给定的解决方案:unlist(listofdf)
,但我得到的只是一个庞大的数值列表,我不知道如何处理
然后我尝试了一个解决方案,该方案适用于给定的示例,但当我尝试应用时:
sapply(names(listofdf),
function (x) write.table(listofdf[x],
file = paste(names(listofdf)[x],".csv", sep=""),
row.names = FALSE))
但当我尝试时,它只导出一个名为NA.csv的文件。您知道如何使这些解决方案发挥作用吗?您的问题是如何为
列表
对象编制索引,而名称(listofdf)[i]
没有按照您的想法执行。试试这个:
listofdf <- list(a = iris, b = iris, c = iris)
for (i in seq_along(listofdf)){
write.csv(listofdf[[i]], file = paste0(names(listofdf)[i], ".csv"), row.names = F)
}
这将创建一个名为“output.xlsx”的文件,其中包含与
名称(listofds)
匹配的工作表以及存储在这些工作表中的正确值。它们必须是csv吗?否则,writexl::write_xlsx
会将列表中的每个元素写入excel工作簿中的工作表中。它是矢量化的,因此您不需要循环,它使用列表名作为sheetname。使用[[
,而不是[
,引用列表元素。另外,在您的codesv中尝试listodf[[i]]
,这是我习惯的格式,但我可以尝试其他方法。一个或两个[
给出了相同的错误(无效的下标类型“列表”),但listofdf[[1]]
与您的第一个解决方案存在相同的错误(无效的下标类型“列表”),但是第二个工作表可以像你说的那样工作。我可以在R中单独导入工作表吗?@Anthony,我已经做了一个小的可复制的例子。有很多方法可以导入excel文件的工作表。你可以使用readxl::read\u excel
指定特定的工作表,或者你可以将整个工作簿导入到列表
对象中例如,列表名称是使用rio::import_list
的工作表名称。事实上,它与iris数据集一起工作,但与我的数据集不起作用。我将尝试解决这个问题。readxl解决方案将完成这项工作。感谢您的支持help@Anthony不客气。不幸的是,没有看到你的结构,我无法确定什么是cau唱你的歌。
library(writexl)
write_xlsx(listofdfs, "output.xlsx")