1

私のユースケースは次のとおりです。

  • GUI を表示していくつかの R 式を収集する
  • ユーザーによって提供された R 式と混合されたシミュレーション フレームワークを含む単一のソース ファイルを生成します。
  • ユーザーが単一のソース ファイルを生成できるようにします。ユーザーが指定した式にエラー (構文または実行時) が含まれている場合は、ユーザー フレンドリーな方法で表示したいと考えています。

要するに、私は次のように何かをしたい:

myExpression <- "3 * 5"
myExprParsed <- tryCatch( parse(myExpression), .... )

私の質問は非常に単純です.Rには正規表現のような構造があり\Q \E、テキスト文字列を最初から最後まで完全に引用していますか? myExpression に"文字が含まれている可能性が高く、構文エラーが発生します。テキストの内容を別のテキスト ファイルに書き込んで使用したくありませんsource()

=例=

myExpression <- " XXXXXXX "

ここで、XXXXXX は次のpaste("my random value is ", runif(3))ようになります

myExpression <- " paste("my random value is ", runif(3)) "

これは構文エラーになります。私は何かが欲しい

myExpression <- verbatim@   paste("my random value is ", runif(3))   @
4

1 に答える 1

2

ユーザーからいくつかの入力を取得します。GUIのテキストボックスから値を取得するだけだと思います。私が使用しますscan

> dowhat = scan(what="")
1: x="hello world"
3: 
Read 2 items

文字列を引用しました:

> dowhat
[1] "x=\"hello" "world\""  

私たちはそれを解析することができます:

> parse(text=dowhat)
expression(x="hello
world")

また、scan()は行ごとに分割するため、改行があります。本当に問題ではなく、気にすれば修正可能です。

それでは実際に実行してみましょう。

> eval(parse(text=dowhat))

そして今、私たちは:を持っている必要がありxます

> x
[1] "hello\nworld"
> 

于 2012-10-17T09:07:46.957 に答える