Evaluate expression given as a string

前端 未结 7 1866
小蘑菇
小蘑菇 2020-11-21 23:41

I\'m curious to know if R can use its eval() function to perform calculations provided by e.g. a string.

This is a common case:

eval(\"5         


        
7条回答
  •  有刺的猬
    2020-11-22 00:17

    The eval() function evaluates an expression, but "5+5" is a string, not an expression. Use parse() with text= to change the string into an expression:

    > eval(parse(text="5+5"))
    [1] 10
    > class("5+5")
    [1] "character"
    > class(parse(text="5+5"))
    [1] "expression"
    

    Calling eval() invokes many behaviours, some are not immediately obvious:

    > class(eval(parse(text="5+5")))
    [1] "numeric"
    > class(eval(parse(text="gray")))
    [1] "function"
    > class(eval(parse(text="blue")))
    Error in eval(expr, envir, enclos) : object 'blue' not found
    

    See also tryCatch.

提交回复
热议问题