如何解决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))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。