R:为数据框生成动态名称

问题描述

我需要从一个目录中读取多个 csv 文件并将每个数据保存在单独的数据框中。 文件名在字符向量中:

lcl_forecast_data_files <- dir(lcl_forecast_data_path,pattern=glob2rx("*.csv"),full.names=TRUE)

例如:“fruc2021.csv”、“gem2020.csv”、“strb2021.csv”。

到目前为止,我正在逐步阅读文件

fruc2021 <- read_csv2("fruc2021.csv")
gem2020 <- read_csv2("gem2020.csv")
strb2010 <- read_csv2("strb2021.csv")

但是目录和子目录中还有很多文件一个一个地读起来很乏味。

现在我已经对 map 函数进行了一些实验,但我还没有弄清楚如何从文件名中自动生成数据框的名称

一个简单的尝试是:

lcl_forecast_data <- lcl_forecast_data_files %>% 
  map(
    function(x) {
      str_replace(basename(x),".csv","") <- read_csv2(x)
    }
  )

但这不起作用:-(

甚至可以为这样的数据帧生成名称吗? 或者还有其他更简单的可能性吗?

您好 贝恩

www.DeepL.com/Translator翻译(免费版)

解决方法

如果您不想像@Onyambu 建议的那样使用列表和 lapply,您可以使用assign() 来生成数据帧。

vjust