如何解决在dplyr :: mutate中传递公式表达式 数据
是否可以将公式表达式传递给mutate来创建新变量。
expression1 <- formula(ifelse(Var1 == 9,Var1))
df <- data.frame(Var1 = sample(1:10,10,replace = TRUE),Var2 = sample(1:10,replace = TRUE)) %>%
mutate(new_var = expression1)
解决方法
如果它是一个字符串,那么我们可以解析它
library(dplyr)
expression1 <- 'ifelse(Var1 == 9,Var1)'
df %>%
mutate(new_var = eval(rlang::parse_expr(expression1)))
-输出
# Var1 Var2 new_var
#1 7 7 7
#2 5 7 5
#3 5 2 5
#4 4 6 4
#5 7 9 7
#6 9 3 0
#7 9 5 0
#8 2 9 2
#9 9 2 0
#10 10 9 10
数据
df <- data.frame(Var1 = sample(1:10,10,replace = TRUE),Var2 = sample(1:10,replace = TRUE))
,
rlang
倾向于使用表达式或等式而不是公式。最好使用
expression1 <- rlang::expr(ifelse(Var1 == 9,Var1))
df <- data.frame(Var1 = sample(1:10,replace = TRUE)) %>%
mutate(new_var = !!expression1)
首先,您使用expr()
函数创建表达式。然后,将其“注入”到要使用!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。