如何使用 dplyr 计算 r 中的汇总统计数据


您可以使用以下语法,使用dplyr包中的函数,计算 R 数据框中所有数值变量的汇总统计信息:

 library (dplyr)
library (tidyr)

df %>% summarise(across(where(is. numeric ), .fns = 
                     list(min = min,
                          median = median,
                          mean = mean,
                          stdev = sd,
                          q25 = ~quantile(., 0.25 ),
                          q75 = ~quantile(., 0.75 ),
                          max = max))) %>%
  pivot_longer(everything(), names_sep=' _ ', names_to=c(' variable ', ' .value '))

summarise()函数来自dplyr包,用于计算变量的汇总统计数据。

ivot_longer()函数来自Tidyr包,用于格式化输出以使其更易于阅读。

此特定语法计算数据框中每个数值变量的以下汇总统计数据:

  • 最小值
  • 中值
  • 平均值
  • 标准差
  • 第 25 个百分位数
  • 第 75 个百分位数
  • 最大值

下面的例子展示了如何在实际中使用这个功能。

示例:使用 dplyr 计算 R 中的汇总统计数据

假设我们在 R 中有以下数据框,其中包含有关各种篮球运动员的信息:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(12, 15, 19, 14, 24, 25, 39, 34),
                 assists=c(6, 8, 8, 9, 12, 6, 8, 10),
                 rebounds=c(9, 9, 8, 10, 8, 4, 3, 3))

#view data frame
df

  team points assists rebounds
1 to 12 6 9
2 A 15 8 9
3 A 19 8 8
4 A 14 9 10
5 B 24 12 8
6 B 25 6 4
7 B 39 8 3
8 B 34 10 3

我们可以使用以下语法来计算数据框中每个数值变量的汇总统计信息:

 library (dplyr)
library (tidyr)

#calculate summary statistics for each numeric variable in data frame
df %>% summarise(across(where(is. numeric ), .fns = 
                     list(min = min,
                          median = median,
                          mean = mean,
                          stdev = sd,
                          q25 = ~quantile(., 0.25 ),
                          q75 = ~quantile(., 0.75 ),
                          max = max))) %>%
  pivot_longer(everything(), names_sep=' _ ', names_to=c(' variable ', ' .value '))

# A tibble: 3 x 8
  variable min median mean stdev q25 q75 max
             
1 points 12 21.5 22.8 9.74 14.8 27.2 39
2 assists 6 8 8.38 2.00 7.5 9.25 12
3 rebounds 3 8 6.75 2.92 3.75 9 10

 从结果我们可以看出:

  • 点数列中的最小值是12
  • 点数列中的中值为21.5
  • 分数栏中的平均值是22.8

等等。

注意:在此示例中,我们使用了 dplyr across()函数。您可以在此处找到此功能的完整文档。

其他资源

以下教程解释了如何使用 dplyr 执行其他常见功能:

如何使用 dplyr 汇总数据但保留所有列
如何使用 dplyr 汇总多列
如何使用 dplyr 计算标准差

添加评论

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