> 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
のエラー: 単項演算子の引数が無効です
> 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
のエラー: 単項演算子の引数が無効です
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)
、ベクトルを与える。そのため、前にマイナス記号を追加すると、目的の出力が得られます。