文字列として与えられた式を評価する 質問する

文字列として与えられた式を評価する 質問する

eval()R がその関数を使用して、たとえば文字列によって提供される計算を実行できるかどうかを知りたいです。

これはよくあるケースです:

eval("5+5")

ただし、10 の代わりに次のようになります:

[1] "5+5"

解決策はありますか?

ベストアンサー1

このeval()関数は式を評価しますが、"5+5"式ではなく文字列です。文字列を式に変換するには、withparse()を使用します。text=<string>

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

呼び出しはeval()多くの動作を呼び出しますが、その中にはすぐには分からないものもあります。

> 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

参照トライキャッチ

おすすめ記事