使用dplyr case_when以编程方式

我想使用dplyr case_when并传递变量,但结果并不如预期。使用dplyr case_when以编程方式

例子:

library(dplyr) 

mtcars %>%

mutate(cg = case_when(carb <= 2 ~ "low",

carb > 2 ~ "high")) ---this works

然而,当我试图通过一个变量,它返回所有为 “低”

var <- quo(carb) 

mtcars %>%

mutate(cg = case_when(!!var <= 2 ~ "low",

!!var > 2 ~ "high"))

任何帮助,不胜感激!

回答:

这是操作问题的顺序,你需要使用括号:

quo_function <- function(df, var) { 

df %>%

mutate(cg = case_when((!!var) <= 2 ~ "low",

(!!var) > 2 ~ "high"))

}

看一看这篇文章this post。

以上是 使用dplyr case_when以编程方式 的全部内容, 来源链接: utcz.com/qa/258311.html

回到顶部