如何在 r 中计算十分位数(附示例)
在统计学中,十分位数是将数据集分为频率相等的十组的数字。
第一个十分位数是所有数据值的 10% 低于的点。第二个十分位数是所有数据值的 20% 低于的点,依此类推。
我们可以使用以下语法来计算 R 中数据集的十分位数:
quantile(data, probs = seq (.1, .9, by = .1 ))
下面的例子展示了如何在实际中使用这个功能。
示例:计算 R 中的十分位数
以下代码展示了如何创建一个包含 20 个值的假数据集,然后计算该数据集的十分位数值:
#create dataset data <- c(56, 58, 64, 67, 68, 73, 78, 83, 84, 88, 89, 90, 91, 92, 93, 93, 94, 95, 97, 99) #calculate deciles of dataset quantile(data, probs = seq (.1, .9, by = .1 )) 10% 20% 30% 40% 50% 60% 70% 80% 90% 63.4 67.8 76.5 83.6 88.5 90.4 92.3 93.2 95.2
十分位的解释方法如下:
- 所有数据值中有 10% 小于63.4
- 所有数据值中有 20% 小于67.8 。
- 所有数据值中有30%小于76.5 。
- 所有数据值中有 40% 小于83.6 。
- 所有数据值中有 50% 小于88.5 。
- 所有数据值中有 60% 小于90.4 。
- 所有数据值中有 70% 小于92.3 。
- 所有数据值中的 80% 小于93.2 。
- 所有数据值中的 90% 都小于95.2 。
应该注意的是,第 50 个百分位数的值等于数据集的中值。
示例:在 R 中将值放入十分位数
要将每个数据值放入十分位数,我们可以使用 R 中dplyr包中的ntile(x, ngroups)函数。
以下是如何将此函数用于我们在上一个示例中创建的数据集:
library (dplyr) #create dataset data <- data.frame(values=c(56, 58, 64, 67, 68, 73, 78, 83, 84, 88, 89, 90, 91, 92, 93, 93, 94, 95, 97, 99)) #place each value into a decile data$decile <- ntile(data, 10) #viewdata data values decile 1 56 1 2 58 1 3 64 2 4 67 2 5 68 3 6 73 3 7 78 4 8 83 4 9 84 5 10 88 5 11 89 6 12 90 6 13 91 7 14 92 7 15 93 8 16 93 8 17 94 9 18 95 9 19 97 10 20 99 10
结果解释方式如下:
- 数据值 56 位于 0% 和 10% 百分位数之间,因此它位于第一个十分位数。
- 数据值 58 位于 0% 和 10% 百分位数之间,因此它位于第一个十分位数。
- 数据值 64 位于 10% 和 20% 百分位数之间,因此它位于第二个十分位数。
- 数据值 67 位于 10% 和 20% 百分位数之间,因此它位于第二个十分位数。
- 数据值 68 位于 20% 和 30% 百分位数之间,因此它位于第三个十分位数。
等等。