【发布时间】:2013-03-24 00:56:18
【问题描述】:
> sapply(c(0.05,0.01),function(k){-qnorm(k)})
[1] 1.644854 2.326348
> -sapply(c(0.05,0.01),qnorm)
[1] 1.644854 2.326348
但是下面的不能运行,为什么-qnorm不能在sapply中运行?
sapply(c(0.05,0.01),-qnorm)
-qnorm 中的错误:一元运算符的参数无效
【问题讨论】:
-
因为
-qnorm不是函数,也不是函数名。 -
-在此上下文中是一元前缀函数,qnorm是一个函数,但在该上下文中-qnorm不会导致解释器解析为function(x) {-(qnorm(x))},而这会成功。 -
sapply 调用
match.function,将 "-qnorm" 作为搜索参数传递,正如 Marius 所说,-qnorm不是函数名,所以它不会没找到。
标签: r