dplyr 替换多个变量中的值

dplyr Replace values in multiple variables

我需要用 80 替换气缸、齿轮、碳水化合物列中的非 4。我尝试了以下方法,但它不起作用。

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

它抛出以下错误:

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

我在这里错过了什么?

您需要将函数或公式作为第二个参数传递给 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)))