转换R中的语法

时间:2016-03-02 09:14:16

标签: regex r shiny expression-trees

是否可以使用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的新手。

1 个答案:

答案 0 :(得分:3)

R中的

Everything that does something is a function只需做这样的事情:

IF <- `if`
IF(FALSE, 1, 2)
#[1] 2

NOT <- `!`
NOT(TRUE)
#[1] FALSE

然后eval / parse你的字符串。

可以使用as.integer将逻辑值强制转换为整数。