使用字符向量强制评估多个变量

SFu*_*n28 4 r

有没有办法强制使用字符向量评估多个变量?

例如:

x = 1
y = 2
Run Code Online (Sandbox Code Playgroud)

而不是这样做:

force( x )
force( y )
Run Code Online (Sandbox Code Playgroud)

做这样的事情:

force( ls() )
Run Code Online (Sandbox Code Playgroud)

Jos*_*ien 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
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为,如下所述?force:

[force]是语义糖:只是评估符号会做同样的事情