4

文字ベクトルを使用して複数の変数の評価を強制する方法はありますか?

例えば:

x = 1
y = 2

これを行う代わりに:

force( x )
force( y )

次のようにします。

force( ls() )
4

1 に答える 1

5

で置き換えるforce()eval(as.symbol())、トリックが行われます:

## Modified from an example in ?force (h.t. @flodel)
g <- function(x,y) {
    lapply(ls(), function(X) eval(as.symbol(X))) 
    function() x+y 
}
lg <- vector("list", 4)
for (i in 1:2) for (j in 1:2) lg[[i+j-1]] <- g(i,j)
lg[[1]]()
# [1] 2

に記載されているように、これは次の理由で機能し?forceます。

[force] はセマンティック シュガーです: シンボルを評価するだけで同じことができます

于 2012-12-09T13:41:33.873 に答える