> 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
以下は実行できませんが、なぜ-qnormsapplyで実行できないのですか?
sapply(c(0.05,0.01),-qnorm) -qnorm
のエラー: 単項演算子の引数が無効です
> 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
以下は実行できませんが、なぜ-qnormsapplyで実行できないのですか?
sapply(c(0.05,0.01),-qnorm) -qnorm
のエラー: 単項演算子の引数が無効です
Composeは次のようなものに適しています:
require(functional)
sapply(c(0.05,0.01), Compose(qnorm, `-`))
[1] 1.644854 2.326348
ここでは、 を逆引用符で囲む-必要があることに注意してください。
この問題の理由は、実際には2 つの-qnorm(.)関数の複合体であるという事実に関係しています。最初に計算してから を取ります。qnorm(.)negative
sapply単一の機能を期待しています。
使用すると、「関数 qnorm を引いたもの」sapply( <..>, -qnorm) Rを計算しようとしますが、これは関数には意味がありません。
(入力するだけで、同じエラーが発生します。)-qnorm
機能する理由-qnorm(k)は、数値を取得するためRに計算qnorm(k)してから、その数値のマイナスを取るためです。
同様に sapply(<..>, qnorm)、ベクトルを与える。そのため、前にマイナス記号を追加すると、目的の出力が得られます。