如何在 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"

使用这种方法,您可以一次重命名任意数量的列。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注