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

R: Generate dynamic names for dataframes

我需要从目录中读取多个 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")

但是目录和子目录中的文件比较多。一个一个的看完,很枯燥。

现在我已经对地图功能进行了一些试验,但我还没有弄清楚如何从文件名自动生成数据帧的名称。

第一个简单的尝试是:

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

但这没有用:-(

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

问候 本恩

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

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

filenames <- c("fruc2021.csv", "gem2020.csv", "strb2021.csv")

for (i in filenames) {
    assign(paste('',gsub(".csv","",i),sep=''),read.csv(i))
}