先前的帖子说明了如何使用quote()
创建一个未计算的调用,其中参数是不计算也是一个函数:
foo <-function(arg1,arg2){
value <- arg1 + arg2
}
foocall <- call("foo",arg1=quote(x),arg2=quote(y))
foocall
# foo(arg1 = x, arg2 = y)
我怎样才能保持这种质量,但允许Arg1的规格改变。 例如,我在我的环境中的两个命名对象n和m,有时我想越过一个,有时我想越过对方。
## Named objects
n <- c(2,3)
m <- 3
## Case 1: i would like to pass over n
z <-n
call("foo", arg1=quote(z), arg2=quote(y))
## desired output
#foo(arg1 = n, arg2=y)
## Case 2: pass over m
z <- m
call("foo", arg1=quote(z), arg2=quote(y))
## desired output
#foo(arg1 = m, arg2=y)
我有一个很难正确地制定我的问题,但我会说出这样的:我怎样才能分配到ARG1可以改变,但不评估“一路向下”的变量,但只对对象的名称它必然?