lapply()中的奇怪替代()行为

时间:2014-10-03 09:35:37

标签: r

有人可以解释以下结果:

R> lapply(1:2, function(v) substitute(v))
[[1]]
1:2[[2L]]

[[2]]
1:2[[2L]]

鉴于lapply的定义,我认为这应该返回一个包含元素substitute(1)substitute(2)的列表。好像substitute(v)没有在匿名函数范围内进行评估,而是在" parent"中进行评估。之一。

我发现更奇怪的是,如果我将eval添加到substitute,我会得到我正在等待的结果:

R> lapply(1:2, function(v) eval(substitute(v)))
[[1]]
[1] 1

[[2]]
[1] 2

我知道这些问题有点棘手,但显然有些东西我不能来这里。

0 个答案:

没有答案