【问题标题】:How to export multiple .csv-files? [duplicate]如何导出多个 .csv 文件? [复制]
【发布时间】:2021-08-11 13:27:04
【问题描述】:

我有多个不同维度的数据框,它们遵循命名方案“data_x”。我想按照类似的命名方案将它们导出为 .csv 文件。 我找到了this answer,但它与相同维度的数据框有关。这是我尝试过的:

my_list <- (list = ls()[grep("^data", ls())])

data_list <- as.list(my_list)

bindFn <- function(i, data_list){
  sapply(data_list, '[[', i)
}

for(i in names(data_list)) write.csv(bindFn(i, data_list), paste0("data_",i, ".csv"), row.names=F)

【问题讨论】:

    标签: r


    【解决方案1】:

    ls() 具有pattern 参数,用于根据数据中的特定模式获取对象名称。你可以试试-

    my_list <- ls(pattern = '^data')
    
    purrr::imap(mget(my_list),
                 ~write.csv(.x, sprintf('data_%s.csv', .y), row.names = FALSE))
    

    将其完全保留在基础 R 中 -

    tmp <- mget(my_list)
    Map(function(x, y) write.csv(x, y, row.names = FALSE), tmp, 
                       sprintf('data_%s.csv', names(tmp)))
    

    mget 返回一个命名的数据帧列表。

    【讨论】:

      【解决方案2】:
      purrr::walk(my_list, ~ write_csv2(get(.), str_c(., ".csv")))
      

      【讨论】:

      • 你的意思是write.csv2
      • readr::write_csv2 更好。
      猜你喜欢
      • 2017-10-24
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 2013-09-03
      相关资源
      最近更新 更多