更改 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 %>% 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 中的某些列名 [重复]的主要内容,如果未能解决你的问题,请参考以下文章