I have a data.frame
like this:
value condition
1 0.46 value > 0.5
2 0.96 value == 0.79
3 0.45 value <= 0.65
4 0.68 value == 0.
Using match.fun:
# get function, and the value
myFun <- lapply(strsplit(df1$condition, " "), function(i){
list(f = match.fun(i[ 2 ]),
v = as.numeric(i[ 3 ]))
})
df1$goal <- mapply(function(x, y){
x[[ "f" ]](y, x[ "v" ])
}, x = myFun, y = df1$value)
# value condition goal
# 1 0.46 value > 0.5 FALSE
# 2 0.96 value == 0.79 FALSE
# 3 0.45 value <= 0.65 TRUE
# 4 0.68 value == 0.88 FALSE
# 5 0.57 value < 0.9 TRUE
# 6 0.10 value > 0.01 TRUE
# 7 0.90 value >= 0.6 TRUE
# 8 0.25 value < 0.91 TRUE
# 9 0.04 value > 0.2 FALSE