他们是在 R 中重命名我的工作区中所有数据框的列的方法吗

Is their a way to rename the columns of all the dataframes in my workspace in R

我一直在尝试找到一种方法来重命名 R 工作区中每个数据框的所有列。它们只需要具有相同的列名即可。下面的代码是两个数据框(汽车和卡车)的示例,它们的列名称为“1:10”。但是,我有这么多数据框,想自动完成。

names(cars) <- c(1:10)
names(trucks) <- c(1:10)

提前致谢!

这是一种方法。下面我只是以 mtcars 为例,并在我的全局环境中有一个向量来显示你可以忽略其他对象。首先,我创建了一个列表,其中包含全局环境中 dfs 的名称。然后我使用 lapply 将名称设置为 1 到数据中列的长度。我将列表命名为原始 data.frames 的名称,并使用 list2env 将列表导出到全局环境。

根据@gregor 建议编辑

mt1 <- mtcars

mt2 <- mtcars

v1 <- 1

dfslist <-  Filter(mget(ls()), f = is.data.frame)

l1 <- lapply(1:length(dfslist),function(x){
   setNames(dfslist[[x]],1:ncol(dfslist[[x]]))
})

names(l1) <- names(dfslist)

list2env(l1, .GlobalEnv)