-2

実際には関数定義である文字がたくさんあります。その文字を使用してそれらの機能を実行するにはどうすればよいですか? 所持キャラは以下の通り。

foo1 <- "function(p1,p2){, v <- 2, print(\"value is \"), print(v)}"

foo2 <- "function(){, cName <- .Call(\"companyNames\"), return(cName)}"

foo3 <- "function(tickers,field,date){,df<-data.frame(Ticker = tickers, Field = field, Date = date), return(df)}"

...等

これらすべての関数を実行するための一般的な方法が必要です。

4

1 に答える 1

7

編集:質問を変更したため、回答を修正しました:

do.call(eval(parse(text=foo1)), list())

の代わりに、これらの各関数に名前付きリストを追加できますlist()。しかし、率直に言って、あなたが試みていることは不条理に近いものです。どうやってこの種のツールが必要な立場になったのか、私にはわかりません。これからあらゆる種類のスコーピングの問題が発生します。

古い解決策:

fun <- eval(parse(text="function(p1,p2){v <- 2; print(paste0(\"value is \", v))}"))
fun()
## [1] "value is 2"
于 2013-02-19T04:41:30.453 に答える