dplyr替换多个变量中的值

时间:2018-05-30 21:43:51

标签: r dplyr stringr magrittr

我需要用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

我在这里缺少什么?

1 个答案:

答案 0 :(得分:5)

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