文字ベクトルを使用して複数の変数の評価を強制する方法はありますか?
例えば:
x = 1
y = 2
これを行う代わりに:
force( x )
force( y )
次のようにします。
force( ls() )
文字ベクトルを使用して複数の変数の評価を強制する方法はありますか?
例えば:
x = 1
y = 2
これを行う代わりに:
force( x )
force( y )
次のようにします。
force( ls() )
で置き換える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] はセマンティック シュガーです: シンボルを評価するだけで同じことができます