首页 > 解决方案 > 用文件名中的参数在R中编写一个csv文件

问题描述

我正在R中做一个小型日志处理项目。我正在尝试编写一个获取数据框的函数,并将其写入带有一些参数(数据框名称,今天的日期..等)的csv文件

我已经取得了一些进展,但没有设法编写 csv。我希望代码是可重现且良好的。


library(dplyr)
wrt_csv <- function(df) {
  dfname <- deparse(substitute(df))
  dfpath <- paste0('"',"./logs/",dfname, "_", Sys.Date(),'.csv"')
  dfpath <- as.data.frame(dfpath)
  df %>% write_excel_csv(dfpath)

}
wrt_csv(mtcars)

编辑-这是一个运行良好的最终版本。感谢罗纳克·沙阿。

wd<- getwd()

wrt_csv <- function(df) {
  dfname <- deparse(substitute(df))
  dfpath <- paste0(wd,'/logs/',dfname, '_', Sys.Date(),'.csv')

  df %>% write_excel_csv(dfpath)
}

但是,我现在确实有一堆数据框,我想用它们来运行该函数。我应该把它们列成一个清单吗?这不太奏效

l <- list(df1,df2)

lapply(l , wrt_csv)

有什么想法吗?谢谢!

标签: r

解决方案


保留dfpath为字符串。尝试 :

wrt_csv <- function(df) {
   dfname <- deparse(substitute(df))
   dfpath <- paste0('/logs/',dfname, '_', Sys.Date(),'.csv')
   write.csv(df, dfpath, row.names = FALSE)
   #Or same as OP
   #df %>% write_excel_csv(dfpath)
}

wrt_csv(mtcars)

推荐阅读