【发布时间】:2017-10-18 14:04:26
【问题描述】:
我已经阅读了Programming with dplyr 文档并尝试编写一个简单的函数来包裹case_when() 函数。
library(dplyr)
data_test <- data.frame(
a = rep(c("a", "b", "c"), each = 5),
b = rnorm(15)
)
fun_test <- function(df, var1, var2) {
var1 <- enquo(var1)
var2 <- enquo(var2)
df <- mutate(df,
c = case_when(
!!var1 == "a" ~ 1,
!!var1 == "b" ~ 2,
!!var1 == "c" ~ 3
),
d = case_when(
!!var2 > 0 ~ 1,
!!var2 < 0 ~ 0
))
df
}
fun_test(data_test, a, b)
我希望新列 c 和 d 将基于 a 和 b 中的值创建,但它们只是 NA 和 0。任何想法为什么会这样?
干杯。
【问题讨论】: