簡體   English   中英

R中“分位數”函數的行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM