如何在 r 中快速创建数据透视表


在 Excel 中,数据透视表提供了一种对数据进行分组和汇总的简单方法。

例如,如果我们在Excel中有以下数据集,我们可以使用数据透视表来快速汇总按地区的总销售额:

这告诉我们:

  • A区总销售额51
  • B区总销售额85
  • C区实现总销量140

或者我们可以通过另一个指标来总结,例如按地区的平均销售额:

事实证明,我们可以使用dplyr包中的group_by()summary()函数在 R 中快速创建类似的数据透视表。

本教程提供了如何执行此操作的几个示例。

示例:在 R 中创建数据透视表

首先,让我们在 R 中创建与之前 Excel 示例中使用的数据集相同的数据集:

 #create data frame
df <- data. frame (region=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
                 device=c('X', 'X', 'Y', 'X', 'Y', 'Y', 'X', 'X', 'Y', 'Y'),
                 sales=c(12, 18, 21, 22, 34, 29, 38, 36, 34, 32))

#view data frame
df

   region device sales
1AX 12
2AX18
3 AY 21
4 BX22
5 BY 34
6 BY 29
7 CX 38
8CX36
9 CY 34
10 CY 32

接下来,我们加载 dplyr 包并使用group_by()summary()函数按区域进行分组并求按区域的销售额总和:

 library (dplyr)

#find sum of sales by region
df %>%
  group_by (region) %>% 
  summarize (sum_sales = sum (sales))

# A tibble: 3 x 2
  region sum_sales
        
1 to 51
2 B 85
3 C 140

我们可以看到这些数字与 Excel 介绍性示例中显示的数字相匹配。

我们还可以按地区计算平均销售额:

 #find average sales by region
df %>%
  group_by (region) %>% 
  summarize (mean_sales = mean (sales))

# A tibble: 3 x 2
  region mean_sales
        
1 to 17  
2 B 28.3
3 C 35

同样,这些数字与前面的 Excel 示例中显示的数字相匹配。

请注意,我们还可以按多个变量进行分组。例如,我们可以找到按地区设备类型分组的销售额总和:

 #find sum of sales by region and device type
df %>%
  group_by (region, device) %>% 
  summarize (sum_sales = sum (sales))

# A tibble: 6 x 3
# Groups: region [3]
  region device sum_sales
          
1AX30
2 AY 21
3 BX22
4 BY 63
5 CX 74
6 CY 66

其他资源

如何在R中进行VLOOKUP(类似于Excel)
完整指南:如何在 R 中对数据进行分组和汇总

添加评论

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