1. ホーム
  2. r

[解決済み】文字列で与えられた式を評価する

2022-03-28 14:39:34

質問

Rは、その eval() 関数を使って、例えば文字列で提供される計算を実行することができます。

よくあるケースです。

eval("5+5")

しかし、10ではなく、私が取得します。

[1] "5+5"

何か解決策はありますか?

どのように解決するのですか?

その eval() 関数は式を評価しますが "5+5" は文字列であり、式ではありません。使用方法 parse() と共に 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

参照 トライキャッチ .