如何在 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% 百分位数之间,因此它位于第三个十分位数。

等等。

其他资源

如何在 R 中计算百分位数
如何在 R 中计算四分位数
如何在 R 中创建频率表

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注