ね:
建物の呼び出し()のように呼び出して、私は機能を構築したいprgramatically
my_simplecode <- "mtcars"
call("str", as.name(my_simplecode))
#> str(mtcars)
問題は、このような括弧やブラケットなど一部の記号は、コードにあるときas.name()
はバッククォートを紹介することです:
my_code <- "mtcars[, 1:2]"
call("str", as.name(my_code))
#> str(`mtcars[, 1:2]`)
そして、この呼び出しを評価することはできません。 私はstr(mtcars[, 1:2])
のためのコールを生成する必要がありますが、私は引用符を取り除くことはできません。 quote()、enquote()、parse()、deparse()、expression()などのすべての組み合わせを試しました。成功なし。
my_code
は、のいずれかであることができます。です。変数名、またはより一般的には関数呼び出し、パイプなどを含む任意の式。
これはUsing call() with namespace address (:: or :::)と似ていますが、機能名に問題があります。
ありがとうございました。
'my_code'は名前ではありません。これは関数呼び出しです。 'parse'を使う必要があります。しかし、それはfortuneパッケージからの有名な引用を念頭に置いています:もし 'parse'が答えであれば、あなたは間違った質問をしています。 – Roland
Rolandさん、ありがとうございますが、私が( "str"、parse(text = my_code))を呼び出すと、str(expression(mtcars [、1:2]))となるので、解析もうまくいきません。 さらに、my_codeは、私の最初の例のような名前を含む何でもかまいません。 –
あなたは何をしたいのか、理由をより詳細に説明する必要があります。文字列を解析する必要があります。問題は次に何をすべきかですが、目標を十分に指定していません。 – Roland