首页 > 解决方案 > 循环遍历 R 数据帧并将所有变量重命名为小写

问题描述

我正在尝试将多个数据集的变量名称转换为全部小写。

names(data1) <- tolower(names(data1)) 

这适用于任何单个数据集,但我还没有弄清楚如何循环数据集以对多个文件执行此操作。这是我尝试的 for 循环(我也尝试过,lapply但没有任何运气)。

data_list <- c('data1', 'data2', 'data3')
for (file in data_list) {
    names(file) <- tolower(names(file))
}

我也试过:

data_list <- list('data1', 'data2', 'data3')
for (file in data_list) {
    names(file) <- tolower(names(file))
}

标签: rdplyrtidyverse

解决方案


这实际上可以通过 lapply 来遍历所有数据帧来完成,并且由于您提到了 dplyr,它在这种情况下的正确语法,即所有变量名称都为小写。

data_list <- list(iris, mtcars)

data_list_lower <- lapply(data_list, function(data) {
  data %>% 
    rename_with(tolower, .cols = everything()) # default is also everything()
})

为了协调变量名称,还可以查看snakecase允许进行各种其他类型转换的包


推荐阅读