我不明白以下行为与 quantile
. 随着 type=2
它应该在不连续处取平均,但这似乎并不总是发生。如果我创建了一个100个数字的列表,并查看百分位数,那么我是不是应该取每个百分位数的平均值? 这种行为会发生在一些人身上,但不是所有的人(即第7百分位)。
quantile(seq(1, 100, 1), 0.05, type=2)
# 5%
# 5.5
quantile(seq(1, 100, 1), 0.06, type=2)
# 6%
# 6.5
quantile(seq(1, 100, 1), 0.07, type=2)
# 7%
# 8
quantile(seq(1, 100, 1), 0.08, type=2)
# 8%
# 8.5
这是否与浮点问题有关?
100*0.06 == 6
#TRUE
100*0.07 == 7
#FALSE
sprintf("%.20f", 100*0.07)
#"7.00000000000000088818"