更改 R 中的某些列名 [重复]

Posted

技术标签:

【中文标题】更改 R 中的某些列名 [重复]【英文标题】:Changing some column name in R [duplicate] 【发布时间】:2021-04-18 08:01:18 【问题描述】:

我想用此代码更改我的第 4 列和第 5 列的列名,但它不起作用。

colnames(df[,4:5]) <- paste(colnames(df[,4:5]), "13", sep= "_")

如果我删除 [,4:5] 并更改整个数据框的列名,它会起作用。

colnames(df) <- paste(colnames(df), "13", sep= "_")

但我想要的输出只是更改第 4 列和第 5 列。谢谢。

【问题讨论】:

试试colnames(df)[4:5] = paste(colnames(df)[4:5], "13", sep="_") @user438383 有它。您希望将值分配给 colnames 向量,而不是数据框行。 【参考方案1】:

使用dplyr::rename() 更容易。

只需使用df %&gt;% rename(new_name = old_name),就完成了!

这是一个例子

library(dplyr)
head(mtcars, n = 2)
              mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4      21   6  160 110  3.9 2.620 16.46  0  1    4    4
Mazda RX4 Wag  21   6  160 110  3.9 2.875 17.02  0  1    4    4

mtcars_new = mtcars %>% rename(new_mpg = mpg)

head(mtcars_new, n = 2)
              new_mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4          21   6  160 110  3.9 2.620 16.46  0  1    4    4
Mazda RX4 Wag      21   6  160 110  3.9 2.875 17.02  0  1    4    4

【讨论】:

【参考方案2】:

您可以尝试replace,如下所示

setNames(df, replace(names(df), 4:5, paste(names(df)[4:5], "13", sep = "_")))

【讨论】:

以上是关于更改 R 中的某些列名 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

更改 R 中数据框列表中的列名子集

ifelse 按 r 中的列位置 - 列名未知 [重复]

按任意指定顺序重新排序R中的列名[重复]

R中的列未被识别为变量[重复]

如何在data.table中使用某些列名的字符向量选择列?[重复]

列名的 R 中的 histChanging 类