[英]Behavior of the `quantile` function in R
在處理問題時,我發現了一些有趣的東西。 我不知道到底發生了什么,但有些事情發生了,我沒想到會發生。 我可能犯了一個錯誤,但讓我先舉一個例子:
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 ) ) ]
我們得到三個不同的結果,但是如何解釋這些結果。 這些是使用的限制嗎?
更新:我想我問的是錯誤的問題。 我們如何解釋以下內容:
> 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
您對>
和R的回收行為感到困惑。 當quantile
返回多於1個值時(如前兩個示例中所示),它將這些向量再循環到與x
相同的長度,以便通過>
進行矢量化比較。
因此,在最后兩個例子中,它一遍又一遍地重復來自quantile
的2或3個值,直到得到的向量與x
長度相同,並且它們將元素方式與>
進行比較。
編輯
也許我的解釋不夠明確。 在編輯的最后一行x > quantile( x, c( 0.1, 0.2 ) )
,R是所述第一元件相比較x
與0.1分位數,第二元件x
與0.2分位數,第三元件x
與0.1分位數, x
的第4個元素,0.2分位數,依此類推。 得到它了? :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.