Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将数据帧列表导出为csv_R_List_Csv_Export - Fatal编程技术网

R 将数据帧列表导出为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

我有一个要导出为csv的数据帧列表。我试过:

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