首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何简化以下编写多个CSV文件的R代码?

如何简化以下编写多个CSV文件的R代码?
EN

Stack Overflow用户
提问于 2022-07-25 00:06:40
回答 1查看 54关注 0票数 -2

我想在R中输出以下数据,我想保留原名,我知道如何简化它,我认为lapply()不起作用。

代码语言:javascript
复制
write.csv(weekly_data$NO_2005_2011_all_site,'Weekly_NO_2005_2011_all_site.csv',row.names = FALSE)
write.csv(weekly_data$NO_2017_2021_all_site,'Weekly_NO_2017_2021_all_site.csv',row.names = FALSE)
write.csv(weekly_data$NO2_2005_2011_all_site,'Weekly_NO2_2005_2011_all_site.csv',row.names = FALSE)
write.csv(weekly_data$NO2_2017_2021_all_site,'Weekly_NO2_2017_2021_all_site.csv',row.names = FALSE)
write.csv(weekly_data$NOx_2005_2011_all_site,'Weekly_NOx_2005_2011_all_site.csv',row.names = FALSE)
write.csv(weekly_data$NOx_2017_2021_all_site,'Weekly_NOx_2017_2021_all_site',row.names = FALSE)
write.csv(weekly_data$O3_2005_2011_all_site,'Weekly_O3_2005_2011_all_site.csv',row.names = FALSE)
write.csv(weekly_data$O3_2017_2021_all_site,'Weekly_O3_2017_2021_all_site.csv',row.names = FALSE)
write.csv(weekly_data$PM10_2005_2011_all_site,'Weekly_PM10_2005_2011_all_site.csv',row.names = FALSE)
write.csv(weekly_data$PM10_2017_2021_all_site,'Weekly_PM10_2017_2021_all_site.csv',row.names = FALSE)
write.csv(weekly_data$PM2.5_2005_2011_all_site,'Weekly_PM2.5_2005_2011_all_site.csv',row.names = FALSE)
write.csv(weekly_data$PM2.5_2017_2021_all_site,'Weekly_PM2.5_2017_2021_all_site.csv',row.names = FALSE)
write.csv(weekly_data$SO2_2005_2011_all_site,'Weekly_SO2_2005_2011_all_site.csv',row.names = FALSE)
write.csv(weekly_data$SO2_2017_2021_all_site,'Weekly_SO2_2017_2021_all_site.csv',row.names = FALSE)

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2022-07-25 00:37:54

在最初的文章中没有一个最小的可重复示例,下面是如何将列从mtcars数据帧写入列特定的CSV文件的示例。

基本逻辑是,一旦我们知道了数据帧名称及其列,就可以使用列名驱动lapply()函数,通过get()函数和提取操作符的[形式组合,将每一列提取成数据帧。

我们将结果转换为数据框架,以便将列名设置为x以外的其他内容。

代码语言:javascript
复制
# use mtcars data as an example
theColumns <- colnames(mtcars)
outputDirectory <- "./data/mtcarsExample/"
if(!dir.exists(outputDirectory)) dir.create(outputDirectory)
lapply(theColumns,function(x,y){
     df <- data.frame(get(y)[,x])
     colnames(df) <- x
     write.csv(df,paste0(outputDirectory,x,".csv"),row.names = FALSE)
     paste(paste0(outputDirectory,x,".csv"),"written to disk")
},"mtcars")

lapply()函数通过数据帧中的列工作时,它将文件名写入输出列表。

...and第一个文件的输出,mtcars$am在Microsoft中查看时如下所示:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73102942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档