📜  如何在R中按组获取汇总统计信息

📅  最后修改于: 2022-05-13 01:54:47.703000             🧑  作者: Mango

如何在R中按组获取汇总统计信息

在本文中,我们将学习如何在 R 编程语言中按组获取汇总统计信息。

正在使用的示例数据框:

grpBy num
1      A  20
2      A  30
3      A  40
4      B  50
5      B  50
6      C  70
7      C  80
8      C  25
9      C  35
10     D  45
11     E  55
12     E  65
13     E  75
14     E  85
15     E  95
16     E 105

方法一:使用tapply()

R 语言中的tapply()函数用于将函数应用于由因子组合给出的向量子集。此函数根据语法采用 3 个参数。第一个参数是数据列,第二个参数是数据分组所依据的列,在这个例子中,数据是根据字母分组的。第三个参数是将应用于每个组的函数,在此示例中,我们传递了summary()函数,因为我们要按组计算汇总统计信息。

示例: R 程序按组获取汇总统计信息

R


R


R


R


输出:

$A
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
     20      25      30      30      35      40 
$B
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
     50      50      50      50      50      50 
$C
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   25.0    32.5    52.5    52.5    72.5    80.0 
$D
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
     45      45      45      45      45      45 
$E
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   55.0    67.5    80.0    80.0    92.5   105.0 

方法 2:使用 data.table 方法

在这种方法中,我们首先需要使用 library()函数导入data.table包。然后我们将data.frame转换为data.table,R中的data.table是data.frame的增强版。由于它的执行速度和键入的代码较少,它在 R 中变得流行。然后最重要的一步,我们遵循提供的语法并计算每个组的汇总统计信息。

示例: R 程序按组获取汇总统计信息

电阻

输出:

grpBy Min. 1st Qu. Median Mean 3rd Qu. Max.
1:     A   20    25.0   30.0 30.0    35.0   40
2:     B   50    50.0   50.0 50.0    50.0   50
3:     C   25    32.5   52.5 52.5    72.5   80
4:     D   45    45.0   45.0 45.0    45.0   45
5:     E   55    67.5   80.0 80.0    92.5  105

方法三:使用split()函数和purrr包

R 语言中的 split()函数用于将数据向量划分为由提供的因子定义的组。我们使用library()函数导入purrr库。purrr 是一个函数式编程工具包。它带有许多有用的功能,例如地图。 map()函数遍历所有组并以列表形式返回输出。它允许我们在代码中替换 for 循环并使其更易于阅读。

示例: R 程序按组获取汇总统计信息



电阻

输出:

$A
 grpBy      num    
 A:3   Min.   :20  
 B:0   1st Qu.:25  
 C:0   Median :30  
 D:0   Mean   :30  
 E:0   3rd Qu.:35  
       Max.   :40  
$B
 grpBy      num    
 A:0   Min.   :50  
 B:2   1st Qu.:50  
 C:0   Median :50  
 D:0   Mean   :50  
 E:0   3rd Qu.:50  
       Max.   :50  
$C
 grpBy      num      
 A:0   Min.   :25.0  
 B:0   1st Qu.:32.5  
 C:4   Median :52.5  
 D:0   Mean   :52.5  
 E:0   3rd Qu.:72.5  
       Max.   :80.0  
$D
 grpBy      num    
 A:0   Min.   :45  
 B:0   1st Qu.:45  
 C:0   Median :45  
 D:1   Mean   :45  
 E:0   3rd Qu.:45  
       Max.   :45  
$E
 grpBy      num       
 A:0   Min.   : 55.0  
 B:0   1st Qu.: 67.5  
 C:0   Median : 80.0  
 D:0   Mean   : 80.0  
 E:6   3rd Qu.: 92.5  
       Max.   :105.0  

方法四:使用dplyr

group_by函数用于按提供的变量进行分组。然后使用汇总函数计算分组数据的最小值、q1、中值、平均值、q3、最大值。这些统计值与汇总函数产生的值相同。唯一的区别是,在这里我们必须使用汇总函数对分组数据显式调用这些函数。该函数按照指定的函数减少了分组列的单个值。

示例: R 程序按组获取汇总统计信息

电阻

输出:

grpBy   min    q1 median  mean    q3   max
         
1 A        20  25     30    30    35      40
2 B        50  50     50    50    50      50
3 C        25  32.5   52.5  52.5  72.5    80
4 D        45  45     45    45    45      45
5 E        55  67.5   80    80    92.5   105