2011-12-15 54 views
0

好的,所以我在這裏有最奇怪的問題。當我們用一個獨立變量X的特定分位點劃分一個空格時,我採用了因變量Y的均值。爲什麼1.59不等於1.59

我的問題是,R中的分位數函數沒有返回我的範圍內的值獨立變量X,但是它在打印到屏幕上時返回的值是正確的值。是什麼讓這個陌生人只會發生在特定的分位數上。

一些示例代碼來演示這個奇怪的效果:

x<-c(1.49,rep(1.59,86)) 
quantile(x,0.05) # returns 1.59, the correct value 
# However both of these return all values as false 
table(x>=quantile(x,0.05)) 
table(x==quantile(x,0.05)) 
# But if we take a quantile at 0.075 it works correctly 
table(x>=quantile(x,0.075)) 

你們可以提供任何有識之士將不勝感激。

+1

我相信這是R FAQ 7.22。 – 2011-12-15 03:37:12

+0

它應該很容易創建一個7.22自動應答器:。) – 2011-12-15 07:25:19

回答

5

的位數不正是1.59

> quantile(x, 0.05)[[1]] == 1.59 
[1] FALSE 
> quantile(x, 0.05)[[1]] == 1.5900000000000003 
[1] TRUE 

quantile(..., type = 7)似乎與0.7000000000000001 * 1.59 + 0.3 * 1.59,它引入了禁止使用確切平等的微小誤差被替換1.59