如何在 r 中重命名数据框列
本教程介绍如何使用各种不同的方法在 R 中重命名数据框列。
对于每个示例,我们将使用 R 中的mtcars内置数据集。
使用 Base R 重命名前n列
mtcars中一共有11个列名:
#view column names of mtcars
names(mtcars)
# [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
# [11] “carb”
要重命名前 4 列,您可以使用以下语法:
#rename first 4 columns
names(mtcars) <- c("miles_gallon", "cylinders", "display", "horsepower")
names(mtcars)
#[1] "miles_gallon" "cylinders" "display" "horsepower" NA
#[6] NA NA NA NA NA
#[11] NA
请注意,R 以第一列的名称开头,并简单地重命名您提供的尽可能多的列。在此示例中,由于有 11 个列名,而我们只提供了 4 个列名,因此仅重命名了前 4 列。要重命名所有 11 列,我们需要提供包含 11 列名称的向量。
改名 使用 Base R 按名称列出的列
如果我们想重命名mtcars数据集中的特定列,例如“wt”列,我们可以通过名称来执行此操作:
#rename just the "wt" column in mtcars
names(mtcars)[names(mtcars)=="wt"] <- "weight"
names(mtcars)
#[1] "mpg" "cyl" "disp" "hp" "drat" "weight" "qsec" "vs"
#[9] "am" "gear" "carb"
请注意,只有“weight”列被重命名为“weight”,所有其他列都保留其原始名称。
改名 使用 Base R 按索引列出的列
我们还可以通过索引重命名mtcars数据集中的特定列。例如,以下是如何通过索引重命名第二列“cyl”的名称:
#rename the second column name in mtcars
names(mtcars)[2] <- "cylinders"
names(mtcars)
# [1] "mpg" "cylinders" "disp" "hp" "drat" "wt"
# [7] "qsec" "vs" "am" "gear" "carb"
请注意,只有“cyl”列被重命名为“cylindricals”,所有其他列都保留其原始名称。
改名 使用 dplyr 的列
在 R 中重命名列的另一种方法是使用dplyr包中的rename()函数。执行此操作的基本语法是:
data %>% rename(new_name1 = old_name1, new_name2 = old_name2, ....)
例如,以下是如何重命名mtcars数据集中的列名称“mpg”和“cyl”:
#install (if not already installed) and load dplyr package if(!require(dplyr)){install.packages('dplyr')} #rename the "mpg" and "cyl" columns new_mtcars <- mtcars %>% rename( miles_g = mpg, cylinder = cyl ) #view new column names names(new_mtcars) # [1] "miles_g" "cylinder" "disp" "hp" "drat" "wt" # [7] "qsec" "vs" "am" "gear" "carb"
使用这种方法,您可以一次重命名任意数量的列。
改名 使用 data.table 的列
在 R 中重命名列的另一种方法是使用data.table包中的setnames()函数。执行此操作的基本语法是:
setnames(data, old=c("old_name1","old_name2"), new=c("new_name1", "new_name2"))
例如,以下是如何重命名mtcars数据集中的列名称“mpg”和“cyl”:
#install (if not already installed) and load data.table package if(!require(data.table)){install.packages('data.table')} #rename "mpg" and "cyl" column names in mtcars setnames(mtcars, old=c("mpg","cyl"), new=c("miles_g", "cylinder")) #view new column names names(mtcars) #[1] "miles_g" "cylinder" "disp" "hp" "drat" "wt" #[7] "qsec" "vs" "am" "gear" "carb"
使用这种方法,您可以一次重命名任意数量的列。