为 tidyverse 中的列名称选择添加后缀

Adding a suffix to a selection of column names in tidyverse

This 很棒 post 向我展示了如何使用 dplyr 为列名添加前缀。但是,如果我只想向这些列的 some 添加前缀怎么办

library(dplyr)

(df <- data.frame(x = c(1, 2), y = c(3, 4), z = c(5, 6)))

#   x y z
# 1 1 3 5
# 2 2 4 6

现在,如果我想为所有这些添加前缀,我可以这样做。

## Adding prefixes
df %>% rename_with( ~ paste0("a", .x))

#   ax ay az
# 1  1  3  5
# 2  2  4  6

但是,如果我只想为列 xy 添加前缀怎么办?某种 select 语法?我试过了

df %>% rename_with(across(cols = c("x", "y")),
                   ~ paste0("a", .x))

但是得到一个错误说 across() 只能在 dplyr 动词中使用,我猜 rename_with 不是其中之一

您可以在 rename_with -

中 select 列
library(dplyr)

df %>% rename_with(~paste0("a", .x), c(x, y))

#  ax ay z
#1  1  3 5
#2  2  4 6