我想以编程方式rename()
我的data
中的一些变量,这样我就可以在某个时候通过map
访问它。
我正在寻找等同于,
library(tidyverse)
mtcars %>% rename(
"MPG" = "mpg"
)
但改用环境
变量。我通过执行以下操作尝试了 !!sym()
,
library(tidyverse)
new_name <- "MPG"
old_name <- "mpg"
mtcars %>% rename(
!!sym(new_name) = !!sym(old_name)
)
但是,我收到错误 Error: unexpected ')' in ")"
。我不确定我在这里错过了什么!
最佳答案
我们可以使用 setNames
并计算 (!!!
)
head(mtcars %>%
rename(!!! setNames(old_name, new_name)))
-输出
MPG cyl disp 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 6 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
关于使用环境变量重命名带有 tidyverse 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68477003/