在dplyr::mutate中传递公式表达式
是否有方法将公式表达式传递到mutate以创建新变量在dplyr::mutate中传递公式表达式,r,dplyr,mutate,R,Dplyr,Mutate,是否有方法将公式表达式传递到mutate以创建新变量 expression1 <- formula(ifelse(Var1 == 9, 0, Var1)) df <- data.frame(Var1 = sample(1:10, 10, replace = TRUE), Var2 = sample(1:10, 10, replace = TRUE)) %>% mutate(new_var = expression1) expr
expression1 <- formula(ifelse(Var1 == 9, 0, Var1))
df <- data.frame(Var1 = sample(1:10, 10, replace = TRUE),
Var2 = sample(1:10, 10, replace = TRUE)) %>%
mutate(new_var = expression1)
expression1如果它是一个字符串,那么我们可以解析它
library(dplyr)
expression1 <- 'ifelse(Var1 == 9, 0, Var1)'
df %>%
mutate(new_var = eval(rlang::parse_expr(expression1)))
数据
dfrlang
更喜欢使用表达式或QUOSURE而不是公式。最好使用
expression1 <- rlang::expr(ifelse(Var1 == 9, 0, Var1))
df <- data.frame(Var1 = sample(1:10, 10, replace = TRUE),
Var2 = sample(1:10, 10, replace = TRUE)) %>%
mutate(new_var = !!expression1)
expression1如果这回答了您的问题,您可以单击“接受答案”将此问题标记为已回答@user8304241
df <- data.frame(Var1 = sample(1:10, 10, replace = TRUE),
Var2 = sample(1:10, 10, replace = TRUE))
expression1 <- rlang::expr(ifelse(Var1 == 9, 0, Var1))
df <- data.frame(Var1 = sample(1:10, 10, replace = TRUE),
Var2 = sample(1:10, 10, replace = TRUE)) %>%
mutate(new_var = !!expression1)