Я пытаюсь динамически переименовать один столбец в фрейме данных, используя rename()
с синтаксисом tidy Assessment, выпущенным в _ 2_ v0.7.0.
На странице справки ?rename
я нашел следующий пример переименования 2 столбцов.
library(dplyr)
vars <- c(var1 = "cyl", var2 ="am")
rename(mtcars, !!vars) %>% head(1)
> mpg var1 disp hp drat wt qsec vs var2 gear carb
> Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
Однако я заметил, что не могу использовать тот же синтаксис для переименования одного столбца.
vars <- c(var1 = "cyl")
rename(mtcars, !!vars) %>% head(1)
> Error: All arguments must be named
Тем не менее, когда я дважды переименовываю один и тот же столбец, это работает.
vars <- c(var1 = "cyl", var1 = "cyl")
rename(mtcars, !!vars) %>% head(1)
> mpg var1 disp hp drat wt qsec vs am gear carb
> Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
Почему это происходит? Какой правильный синтаксис?