在 R 中读取多个文件后,如何使用循环函数重命名多个文件的名称?

How to use loop function to rename multiple files' name after read them in R?

我在“rawdata”文件夹下有多个文件,读取它们并将它们分配为单独的数据集后,我也想将它们从“数据集 1 a.csv”重命名为“数据集 1”。

我写了实现第一个目标的代码,使用第一个循环将所有文件读取为一个列表,然后使用第二个循环取消设置列表:ldf。但是我不知道应该在哪里添加代码让 R 一次更改所有文件的名称?我尝试在不同的地方添加str_replace_all (names(ldf)," ", "-"),但都返回了错误的输出,也无法解决去掉".csv"的问题。非常感谢~~

这是我的代码:

datanames<-list.files(here("rawdata"))

ldf<-list()

for (i in (datanames)){
  ldf[[i]]<-import(here("rawdata",i))
    for (j in names(ldf)){
      assign(j,ldf[[j]], .GlobalEnv)
    }
}

我不确定您要替换的名称的格式,但如果是 blank-number-blank-letter.csv,请使用 gsub 删除。然后您似乎想要将索引添加到名称中,因此将 paste0 与索引 i.

我不确定你将如何导入,但可以使用 read.csv

Assign 将分配名称。

lapply(1:length(list.files()), function(i) assign(paste0(gsub(" [0-9] [a-z].csv", "", list.files()[i]),i), read.csv(list.files()[i])))