3
> 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
のエラー: 単項演算子の引数が無効です

4

2 に答える 2

5

Composeは次のようなものに適しています:

require(functional)
sapply(c(0.05,0.01), Compose(qnorm, `-`))
[1] 1.644854 2.326348

ここでは、 を逆引用​​符で囲む-必要があることに注意してください。

于 2013-03-24T01:06:59.017 に答える
2

この問題の理由は、実際には2 つの-qnorm(.)関数の複合体であるという事実に関係しています。最初に計算してから を取ります。qnorm(.)negative

sapply単一の機能を期待しています。

使用すると、「関数 qnorm を引いたもの」sapply( <..>, -qnorm) Rを計算しようとしますが、これは関数には意味がありません。 (入力するだけで、同じエラーが発生します。)
-qnorm

機能する理由-qnorm(k)は、数値を取得するためRに計算qnorm(k)してから、その数値のマイナスを取るためです。

同様に sapply(<..>, qnorm)、ベクトルを与える。そのため、前にマイナス記号を追加すると、目的の出力が得られます。

于 2013-03-24T02:53:12.847 に答える