这个问题在这里已经有了答案:
How to dplyr rename a column, by column index?
(4 个回答)
6 个月前关闭。
我想使用 dplyr 的管道更改数据框的几个特定列名。下面是一个这样的例子——
library(dplyr)
head(mtcars)
现在假设,我想将第 2 列和第 3 列名称更改为 "a"
和 "b"
分别。简单地说,我可以这样做colnames(mtcars)[2] <- "a"
colnames(mtcars)[3] <- "b"
但是我想用 pipe
来做并在一行中以提高可读性。任何建议我该怎么做?
非常感谢您的时间。
最佳答案
与 tidyverse
,我们可以使用 rename_with
library(dplyr)
mtcars <- mtcars %>%
rename_with(~ c('a', 'b'), 2:3)
names(mtcars)
#[1] "mpg" "a" "b" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
我们可以使用
replace
与 names<-
head(mtcars) %>%
`names<-`(replace(names(.), 2:3, c('a', 'b')))
-输出# mpg a b hp drat wt qsec vs am gear carb
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
关于r - 使用管道更改特定列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67440940/