R中的隐式变量引用

问题描述

| 如何通过调用
z
来评估
c[,2]
a <- c(1,2,3)
b <- c(4,5,6)
c <- cbind(a,b)
z <- \"c[,2]\"
eval(z)
不起作用。     

解决方法

        可能在下面:
eval(parse(text=z))
    ,        如果确实需要动态组装一个函数调用然后对其进行求值,则
do.call
通常会更好(并且更有效)。虽然传递缺少的参数有些困难,但是在这种情况下,TRUE也可以工作:
z <- c[TRUE,2]
等效于:
z <- do.call(\'[\',list(c,TRUE,2))
但是这里有个获取丢失符号的技巧,然后可以使用它:
m <- quote(f(,))[[2]] # The elusive missing symbol
z <- do.call(\'[\',alist(c,m,2))
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...