4

問題に取り組んでいるとき、私は何か面白いことに気づきました。正確に何が起こっているのかわかりませんが、予期していなかったことが起こります。間違えた可能性がありますが、例から始めましょう。

x <- rnorm( 100 )
y <- x[ x > quantile( x, 0.1 ) ]
z <- x[ x > quantile( x, c( 0.1, 0.2 ) ) ]
a <- x[ x > quantile( x, c( 0.1, 0.2, 0.3 ) ) ]

3つの異なる結果が得られますが、これらの結果をどのように解釈するか。これらは使用される制限ですか?

更新:私は間違った質問をしていると思います。次のことをどのように説明できますか。

> x <- rnorm( 100 )
> length( x[ x > quantile( x, 0.1 ) ] )
[1] 90
> length( x[ x > quantile( x, 0.2 ) ] )
[1] 80
> length( x[ x > quantile( x, c( 0.1, 0.2 ) ) ] )
[1] 85
4

1 に答える 1

10

あなたは>Rのリサイクル行動について混乱しています。(最後の2つの例のように)複数の値を返す場合、を介してベクトル化された比較を行うためにquantile、それらのベクトルをと同じ長さにリサイクルします。x>

したがって、最後の2つの例ではquantile、結果のベクトルがと同じ長さになるまで2つまたは3つの値を何度も繰り返し、xそれらを要素ごとにと比較します>

編集

たぶん私の説明は十分に明確ではありませんでした。編集の最後の行で、x > quantile( x, c( 0.1, 0.2 ) )Rはの最初の要素をx0.1分位数、2番目の要素をx0.2分位数、3番目の要素をx0.1分位数、4番目の要素を0.2x分位数と比較しています。 。とった?:)

于 2013-03-08T16:23:53.840 に答える