如何根据频率计算百分位数 table

How to calculate percentiles from frequency table

假设我有以下数据:

data<-data.frame(col1=c(1,3,5,6),occurrences=c(10,4,5,8))

代表类似的东西:

1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 5 5 5 5 6 6 6 6 6 6 6 6

如何计算百分位数 25 和 50?

您可以 quantile 来自 stats 包;

quantile(dB, c(.25, .50)) 

对于您的示例数据集:

dB 
 #  [1] 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 5 5 5 5 6 6 6 6 6 6 6 6

这就是答案:

# > quantile(dB, c(.25, .50))
#   25% 50% 
#   1   3 

要使 dB 使用以下代码:

dB <- rep(data$col1, data$occurrences)

如果您只想要 Q1 和中位数(即 25% 和 50%),那么以下应该可行。

summary(data)