以编程方式使用dplyr case_w [英] use dplyr case_when programmatically
本文介绍了以编程方式使用dplyr case_w的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用dplyr case_when并传递变量,但结果不符合预期。
I'm trying to use dplyr case_when and pass variable but the result was not as expected.
示例:
library(dplyr)
mtcars %>%
mutate(cg = case_when(carb <= 2 ~ "low",
carb > 2 ~ "high")) ---this works
但是,当我尝试传递变量时,它将全部返回为低
However, when I try to pass a variable, it returns all as "low"
var <- quo(carb)
mtcars %>%
mutate(cg = case_when(!!var <= 2 ~ "low",
!!var > 2 ~ "high"))
推荐答案
这是一个操作顺序问题,您需要使用方括号:
This is an order of operations problem, you need to use brackets:
quo_function <- function(df, var) {
df %>%
mutate(cg = case_when((!!var) <= 2 ~ "low",
(!!var) > 2 ~ "high"))
}
看看这篇文章这篇文章。
这篇关于以编程方式使用dplyr case_w的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文