dplyr Замена значений в нескольких переменных

Мне нужно заменить не-4 на 80 в цилиндрах, редукторе, карбюраторных колонках. Я пробовал следующее, но это не работает.

mtcars %>% mutate_at(vars(cyl, gear, carb), replace(which(.!=4), 80))

Выдает следующую ошибку:

Error in replace(which(. != 4), 80) : 
  argument "values" is missing, with no default

Что мне здесь не хватает?


person Geet    schedule 30.05.2018    source источник


Ответы (1)


Вам нужно передать функцию или формулу mutate_at в качестве второго аргумента:

mtcars %>% mutate_at(vars(cyl, gear, carb), ~ replace(., which(.!=4), 80))

Или создайте функцию, используя funs:

mtcars %>% mutate_at(vars(cyl, gear, carb), funs(replace(., which(.!=4), 80)))
person Psidom    schedule 30.05.2018
comment
Понятно. Фантастика! Спасибо! - person Geet; 31.05.2018