【发布时间】:2019-07-16 14:09:25
【问题描述】:
我正在尝试使用 ifelse 创建一个函数,但不断收到错误消息。我想创建一个标志变量,如果两个变量都 = abs(1),则填充 1,否则填充 0
我可以通过输入 2 个特定变量来运行代码,但是在将其转换为函数时遇到了麻烦。任何帮助表示赞赏!
#this is the code I got to work
df <- df %>%
mutate(Flag=ifelse(PTO_1== abs(1) && PTO_2 == abs(1), 1, 0))
#now trying to turn it into a function
flag <- function(var1,var2) {
df <- df %>%
mutate(Flag=ifelse(var1== abs(1) && var2 == abs(1), 1, 0))
}
#trying out the function, and get an error message
flag(PTO_1,PTO_2)
我希望创建一个新的“标志”变量,但却收到一条错误消息:
找不到对象“PTO_1”
【问题讨论】:
-
你为什么使用
abs(1),因为它总是简单的1? -
这个“只是”与
dplyrNSE 有关。看看enquo、sym和!!或最近来自rlang的{{}}。更多详情here.