2011-12-15 86 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