好吧,我在这里遇到了最奇怪的问题。当我们用一个独立变量X的特定分位数来划分一个空格时,我取一个因变量Y的均值。
我的问题是,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))
你们可以提供的任何见解都将受到赞赏。
答案 0 :(得分:5)
分位数不是完全 1.59
:
> quantile(x, 0.05)[[1]] == 1.59
[1] FALSE
> quantile(x, 0.05)[[1]] == 1.5900000000000003
[1] TRUE
quantile(..., type = 7)
似乎正在用1.59
替换0.7000000000000001 * 1.59 + 0.3 * 1.59
,这会引入一个小错误,禁止使用完全相等。