如何从R中的类别计数获取分位数?

时间:2018-12-04 07:34:46

标签: r quantile

例如,我在一个DataFrame中有一个人类身高的样本数据:

df <- data_frame(height = c(1.5, 1.6, 1.7, 1.8, 1.9), number = c(20, 30, 50, 30, 20))

如何计算此样本的90%?

我知道ggplot2具有可以绘制示例ecdf的功能:

ggplot(df, aes(x = height, y = number)) + stat_ecdf()

但是我只需要指定的分位数而不需要绘图。

我可以每重复height number次以创建一个向量,并在向量上使用quantile函数,但是随着number的变大,此方法似乎可以效率很低。

编辑:

似乎stat_ecdf不应以这种方式使用,并且在数据分配出现偏差时:

df <- data_frame(height = c(1.5, 1.6, 1.7, 1.8, 1.9), number = c(100, 2, 3, 4, 5))

只有重复向量的分位数才能提供所需的结果:

quantile(c(rep(1.5,100), rep(1.6,2), rep(1.7,3), rep(1.8,4), rep(1.9,5)))

0 个答案:

没有答案