是否可以使用R:
转换这样的表达式 IF(expr.bool, expr1, expr2)
加入if (expr.bool) expr1 else expr2
AND(expr.bool1, expr.bool2)
(或&&)加入expr.bool1 & expr
。
OR(expr.bool1, expr.bool2)
(或||)加入expr.bool1 | expr.bool2
NOT(expr.bool)
加入!expr.bool
TRUE
进入1
FALSE
进入0
等等。
我尝试了 ast 包,并使用替换来构建表达式树,然后将它们调整为新语法,但似乎没有人工作。
我想要做的是使用左边的语法读取表达式字符串,解析它然后使用eval来获得浮点结果。
P.S。我是R的新手。
答案 0 :(得分:3)
Everything that does something is a function只需做这样的事情:
IF <- `if`
IF(FALSE, 1, 2)
#[1] 2
NOT <- `!`
NOT(TRUE)
#[1] FALSE
然后eval
/ parse
你的字符串。
可以使用as.integer
将逻辑值强制转换为整数。