r - 将列表中的每个数据框保存为 CSV,并使文件名与 df 名称相同 - R;应用
问题描述
我有一个数据框列表。我想将每个数据框保存为单独的 CSV 文件,并使文件名与数据框的名称相同。
df <- list(mtcars, iris, ToothGrowth) df <- setNames(df, c("mtcars",
"iris", "ToothGrowth"))
lapply(df, function(a) write.csv(a, file = paste0("C:/home/",
unlist(lapply(names(df)), function (b) b)), ".csv"), row.names = FALSE))
给出错误:
文件中的错误(文件,ifelse(追加,“a”,“w”)):无效的“描述”参数另外:警告消息:在if(file ==“”)文件中<-stdout()else if(是.字符(文件)){:
文件中的错误(文件,ifelse(追加,“a”,“w”)):无效的“描述”参数
我很确定问题出在第二个lapply
命令中,但我似乎无法弄清楚如何根据名称“自动”分配文件df
名。任何帮助,将不胜感激。
谢谢
解决方案
如果要迭代名称和 data.frames,最好同时mapply
遍历两个列表
mapply(function(dname, data)
write.csv(data, file = paste0("C:/home/", dname, ".csv"), row.names = FALSE),
names(df), df)
通过当前值名称迭代列表时lapply()
不可用。另一种用法lapply
是迭代名称,而不是值
lapply(names(df), function(dname)
write.csv(df[[dname]], file = paste0("C:/home/", dname, ".csv"), row.names = FALSE))
推荐阅读
- shopify - ShopifyBuy js API 为单个产品返回 404
- reactjs - 在 NextJS 中使用具有高阶函数的持久布局
- amazon-web-services - 为 AWS Java Lambda 函数创建 docker 映像
- phoenix-framework - 算术表达式中的错误参数(小数)
- python - 在python中找到给定的正则表达式模式
- python - 熊猫从列中剥离字符串
- xml - XSLT 比较值并检查结果
- azure-container-instances - 我没有收到来自 azure 容器实例的任何日志,而日志位于容器选项卡中
- python - 我想阅读aa excel中的所有工作表并将其作为一个数据框
- html - 瞄准所有
- 除了 CSS 中的一个元素