在R中更改一些列名

18 浏览
0 Comments

在R中更改一些列名

这个问题已经在这里有了答案

改变数据框的列名

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

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

如果我删除[,4:5]并更改整个数据框的列名,则它可以工作。

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

但我的期望输出只是更改第4列和第5列的列名。谢谢。

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以尝试像下面这样使用 replace

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

0
0 Comments

使用 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

0