Excel数据透视表(Pivot Table)可以快速汇总大量数据,能够分类汇总和聚合数值数据,按类别和子类别汇总数据,功能十分强大,并且提供了展开、折叠、行列交换等交互式方法,对使用者来说十分的友好。Excel透视表通过拖拉拽,所见即所得,但是当数据量比较庞大、或者明细数据无法从数据库导出、或者需要根据明细制作自动化的报表时,拿Excel透视表做就会显得“力不从心”。
那在其他常用的数据分析工具中,如何实现分类汇总计算呢?下面会通过一个例子,来说明在R、Python、SAS、SQL中是如何实现的。其中R和Python中均有实现类似Excel透视表相关功能的包,或者函数,只是交互性不如Excel。在SAS中,则是通过一些统计过程,或者一些制表过程来实现分类汇总。在SQL中,当然也有一些语法可以实现该功能。
分类汇总(或者说多维聚合),与数据透视表还是有一些区别的。首先,分类汇总、多维聚合,这些都是概念和功能,Excel数据透视表是一个工具,它能实现分类汇总;其次,多维聚合的结果中,通常将维度作为列,并对各汇总维度的组合进行区分,它的结果依然是一个标准的二维表格,而透视表有行维度、列维度的区分,格式变化比较多样;最后,透视表有行维度、列维度等各种格式,它更像是一个报告,因此也比多维聚合的结果更加直观一些。
如下销售记录表中,product是产品名称,yymm是销售月份,amount是销售金额。