We can use rename_with
instead of rename
library(dplyr)
library(stringr)
data %>%
rename_with(~str_c("Last_", .), everything())
Reproducible example
data(iris)
head(iris) %>%
rename_with(~str_c("Last_", .), .cols = everything())
# Last_Sepal.Length Last_Sepal.Width Last_Petal.Length Last_Petal.Width Last_Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
According to ?rename
rename() changes the names of individual variables using new_name = old_name syntax; rename_with() renames columns using a function.
and in ?across
across() makes it easy to apply the same transformation to multiple
columns, allowing you to use select() semantics inside in summarise()
and mutate().
The description says its use within mutate/summarise
(and transmute
?), and no indication of usage with any other functions i.e. it would fail with select
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…