dplyr替换多个变量中的值

Gee*_*eet 2 r stringr dplyr magrittr

我需要用80英寸的气缸,齿轮和碳水化合物色谱柱替换非4色谱柱。我尝试了以下操作,但是不起作用。

mtcars %>% mutate_at(vars(cyl, gear, carb), replace(which(.!=4), 80))
Run Code Online (Sandbox Code Playgroud)

它引发以下错误:

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

我在这里想念什么?

Psi*_*dom 6

您需要传递一个函数或公式mutate_at作为第二个参数:

mtcars %>% mutate_at(vars(cyl, gear, carb), ~ replace(., which(.!=4), 80))
Run Code Online (Sandbox Code Playgroud)

或使用创建函数funs

mtcars %>% mutate_at(vars(cyl, gear, carb), funs(replace(., which(.!=4), 80)))
Run Code Online (Sandbox Code Playgroud)