如何在 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