Как использовать новую функцию vars_rename
Я пытаюсь использовать новую предложенную функцию vars_rename() в tidyselect после получения мягкого предупреждения о том, что rename_at() в Dplyr устарела. Но мне не повезло заставить его работать, и документация загадочна. Он говорит мне использовать list() вместо funs(), а затем показывает пример с ~ f (.), Который на самом деле не помогает.
Мне нужно переименовать несколько столбцов одновременно. Ранее я бы сделал это так:
iris %>% rename_at(vars(starts_with("Sepal.")), funs(paste0(c("foobar.length", "foobar.width"))))
Когда я пытаюсь предложить предложенный код tidyselect
iris %>% vars_rename(starts_with("Sepal.") = c("foobar.width", "foobar.length"))
Я получаю сообщение об ошибке: неожиданно '=' в "iris ..."
Если я попробую следующее
iris %>% vars_rename(starts_with("Sepal."), c("foobar.width", "foobar.length"))
Я получаю ошибку: все аргументы должны быть названы.
Я пробовал несколько версий, используя list(). Я не могу заставить это работать. Я все еще могу использовать старый код, но я бы хотел, чтобы это можно было воспроизвести в будущем, поскольку это важное исследование для моей компании. Любая помощь приветствуется.
1 ответ
rename_at
в этом случае кажется нормальным, но синтаксис немного изменился.
instead of funs one uses list, and adds a tilde to before paste0 in this case.
old:
iris %>% rename_at(vars(starts_with("Sepal.")), funs(paste0(c("foobar.length", "foobar.width"))))
new:
iris %>% rename_at(vars(starts_with("Sepal.")), list(~paste0(c("foobar.length", "foobar.width"))))