SAS数据可视化:R与Tableau的协同应用
1. SAS与R的数据可视化
R软件可以与SAS数据报告集成,作为开源软件,它能建立SAS和R数据之间的连接。不过,SAS和R在绘图及其他可视化操作上的主要区别在于数据处理方式。
在SAS中,使用如PROC UNIVARIATE等创建绘图的过程时,通常会从整个数据集中读取或计算相关值并进行绘图。例如绘制散点图时,这是必要的操作,但并非所有绘图都需要这样做。虽然部分SAS过程能够接收汇总数据集并进行可视化,但很多SAS过程需要处理整个底层数据集。
以箱线图为例,除异常值外,理论上只需知道五个不同的点(最小值、第25百分位数、中位数、第75百分位数和最大值)就可以创建图形。如果要创建一个时间序列图,展示比率随时间的变化,实际上只需要每个数据点的x坐标(测量比率的时间)和y坐标(比率的值)信息。
而R则假定程序员会以这种方式准备用于绘图的数据。此外,R与SAS的另一个不同之处在于,SAS有不同的可添加组件,而R中不同的附加组件被称为包。R中一个著名的绘图包是ggplot2。尽管基础R具备绘图能力,但R程序员更倾向于使用ggplot2,因为它提供了高级绘图功能和编辑绘图输出的特性。在基础R和ggplot2中,只需要输入实际需要绘制的点数据。
假设我们维护一个医疗数据仓库,其中包含医院信息、美国退伍军人及其获得医疗服务的信息。我们记录了佛罗里达州(FL)、马萨诸塞州(MA)和明尼苏达州(MN)三个州的数据,并跟踪退伍军人在总人口中的比例。目前,FL州退伍军人占总人口的比例约为0.07,MA州约为0.06,MN州也约为0.06。
如果要使用假设的SAS数据仓库为这三个州创建2014 - 2018年退伍军人在人口中比率的时间序列图,SAS提供了在线示例,因为有多种方法和不同的过程可用于完成此任务。但使用SAS进行此任务时,代码会很复杂,输出的图形也会显得陈旧:
- 首先需要在不同的过程之间做出选择,因为它们会产生不同的输出。
- 与R一样,SAS可能需要程序员以特定格式创建数据集以方便绘图,这会产生一组I/O成本。
- 另一组I/O成本出现在SAS实际生成和显示图形时。
例如,使用PROC ARIMA创建带有移动平均线的时间序列图的代码超过30行,输出结果因过于繁杂而难以阅读。相比之下,使用R的ggplot2创建类似的时间序列图只需不到10行代码。
假设使用SAS ETL方法从数据仓库生成以下SAS表(用于演示的虚构数据),并将其导出为*.csv文件:
| state_abbrev | rpt_yr | vet_prop |
| — | — | — |
| FL | 2014 | 0.09 |
|… |… |… |
这个表有以下特点:
- 表格非常小,易于传输,只有三列:state_abbrev(州缩写)、rpt_yr(测量年份)和vet_prop(退伍军人比例)。
- 该表采用实体 - 属性 - 值(EAV)格式,每行指定一个唯一的位置和时间。例如,第一行指定了state_abbrev中的FL位置和rpt_yr中的2014年时间,第三列呈现了要绘制图形的实际指标vet_prop,在2014年的虚构数据中为0.09。
在SAS中生成上述小汇总数据集并将其导出为*.csv文件后,就可以将其导入R并使用R的ggplot2包进行绘图。这表明,无需连接到实时环境(如SQL系统),就可以相对轻松地将R与SAS报告功能结合使用。通过ETL创建提取物,就可以在外部软件(如R)中进行可视化。
2. 在Tableau中报告SAS数据
Tableau是一款在线数据可视化软件,它提供了即时连接不同数据存储进行可视化的机会。它允许连接到*.sas7bdat文件,从而可以在Tableau中可视化SAS数据。Tableau的SAS集成工具的主要功能是将文件导入Tableau,以便在Tableau界面中可视化数据。
目前,要在不断更新的SAS数据存储和Tableau可视化仪表板之间维护实时链接并不容易实现。但使用Tableau的连接资源,像使用R一样可视化从SAS数据仓库获得的SAS格式数据集是可行的。
将数据从SAS导出提取物并导入Tableau进行报告,这看似是个简单的想法,但背后有更重要的目的。SAS数据报告工具存在局限性,尽管它们已经存在很长时间,许多传统报告是用SAS设计的,但这些报告无法利用Tableau的强大功能。Tableau可以轻松生成色彩丰富、多面板、交互式、支持网络的报告,例如维基共享资源用户Marissa - anna创建的多年全球温度可视化报告。
如今,许多SAS仓库正在考虑将其历史SAS报告重建到专门为报告设计的其他软件中。从SAS提取数据并在外部产品(如R或Tableau)中进行可视化可以拓展更多可能性。
3. 报告SAS仓库数据的考虑因素
如今,运行SAS数据仓库的人通常有提供某种报告的义务。例如,他们可能使用SAS报告过程生成每月的财务报告,并保存为PDF格式在公司高管之间传阅,还可能支持像BRFSS那样的在线查询工具。因此,SAS数据仓库的领导者需要在报告方面做出一些考虑:
-
打印报告与网络报告的不同考虑
:如前所述,使用数组、宏变量和宏在SAS中进行打印报告的传统难以迁移,所以它们往往会继续得到支持,但可以在这方面制定计划。对于网络报告,需要考虑不同的因素,其中最突出的是I/O。
-
SAS与网络报告的I/O问题
:SAS的任何功能中,I/O始终是主要关注点。在进行任何类型的网络报告时,I/O变得更加关键。像BRFSS那样的交互式网络界面比R或Tableau构建的类似界面要慢得多且笨拙。目前,使用R或Tableau在网络上交互式可视化存储在SAS中的数据可能具有挑战性。
这些基本考虑因素(打印与网络报告、传统代码与实施新方法、服务交互式网络界面的要求)必须与SAS数据仓库的当前状态及其未来战略方向进行权衡。数据的存储位置和方式将极大地影响报告考虑因素,以及报告的具体要求和项目可用的资源。
下面是一个简单的mermaid流程图,展示了从SAS数据仓库到R或Tableau进行可视化的基本流程:
graph LR
A[SAS数据仓库] --> B[SAS ETL生成汇总数据集]
B --> C[导出为*.csv文件]
C --> D[导入R或Tableau]
D --> E[使用R的ggplot2或Tableau进行可视化]
综上所述,在处理SAS数据可视化时,结合R和Tableau等外部工具可以带来更多的可能性和更好的用户体验,但也需要考虑到各种因素,包括数据处理、I/O成本、报告类型等。在实际应用中,应根据具体需求和资源情况做出合适的选择。
4. SAS数据仓库报告与可视化的综合考量
在当今的数据处理环境中,SAS数据仓库的报告和可视化工作面临着诸多挑战和机遇。以下从不同角度对相关问题进行更深入的分析。
4.1 不同场景下的工具选择
当面临不同的报告和可视化需求时,需要根据具体情况选择合适的工具。以下是一些常见场景及对应的工具建议:
| 场景 | 建议工具 | 原因 |
| — | — | — |
| 简单统计分析和传统报告 | SAS | 具备强大的统计分析功能和丰富的报告过程,适合处理复杂的统计计算和传统的打印报告。 |
| 现代、交互式可视化 | R(ggplot2)、Tableau | R的ggplot2包提供高级绘图功能和灵活的定制性,Tableau则能轻松生成色彩丰富、多面板、交互式的网络报告。 |
| 实时数据监控和动态展示 | Tableau | 虽然目前在与SAS实时连接上有一定挑战,但对于实时数据的监控和动态展示有较好的支持。 |
4.2 数据处理和I/O优化
在处理SAS数据仓库的数据时,I/O成本是一个关键问题。为了优化I/O,可以采取以下措施:
-
数据汇总
:在进行可视化之前,尽可能对数据进行汇总,减少不必要的数据处理。例如,在创建时间序列图时,只提取所需的时间和比率数据。
-
合理选择工具
:根据数据量和复杂度选择合适的工具。对于大规模数据,R和Tableau可能在处理效率上更具优势。
-
使用ETL优化
:通过ETL过程将数据转换为适合可视化的格式,减少可视化工具的处理负担。
4.3 历史报告的重建
许多SAS仓库存在大量历史报告,这些报告可能由于SAS工具的局限性而需要重建。在考虑重建时,需要考虑以下因素:
-
报告复杂度
:如果报告相对简单,不涉及复杂的数组、宏变量和宏,可以相对容易地在其他工具中重建。
-
数据更新频率
:对于数据更新频繁的报告,需要考虑新工具是否能够支持实时或定期更新。
-
用户需求
:了解用户对报告的功能和交互性的需求,确保新报告能够满足用户期望。
5. 常见问题解答
以下是一些关于SAS数据仓库报告和可视化的常见问题及解答:
1.
为什么在ETL协议运行后构建和审查SAS关于ETL的报告很重要?
在ETL过程中,可能会出现各种问题,如数据错误、数据丢失等。通过构建和审查SAS报告,可以监控ETL过程中的指标,及时发现异常情况并进行排查。例如,如果发现某个州的医院床位数据异常,就可以深入检查ETL过程中是否出现问题。
2.
使用SAS为BRFSS数据提供的查询工具存在交互性和数据显示方面的限制,其来源是什么?
这些限制源于SAS为了支持数据在网络上显示而添加的功能。这些功能是SAS的附加功能,并非专门为网络可视化设计,因此在质量上不如专门用于网络数据可视化的工具,如Tableau和R的相关包。
3.
如果需要定期使用SAS/ACCESS连接多个SQL数据库导入数据,SAS Enterprise Guide能提供什么帮助?
SAS Enterprise Guide可以帮助维护一个连接到多个SQL数据库的仪表板。通过其工具,用户可以方便地导航和修改这些连接,提高数据导入的效率。
4.
对于尚未实施SAS Enterprise Guide或SAS Viya的SAS数据仓库,应该选择实施哪一个?
考虑到SAS Enterprise Guide是一个较旧的应用程序,而SAS Viya是新的、支持网络的应用程序,并且可以结合云存储(如Snowflake)使用,建议优先考虑实施SAS Viya。
5.
即使拥有最新的SAS可视化软件,为什么仍然选择在非SAS软件中可视化部分SAS数据?
SAS历史上主要优化于数据管理和分析,其可视化工具在功能和外观上可能无法与专门为可视化设计的工具(如Tableau)竞争。因此,当SAS的可视化和报告资源无法满足需求时,可以考虑使用其他软件。
6.
对于考虑将SAS报告重建到R或Tableau的仓库,需要考虑哪些信息才能给出好的建议?
需要考虑报告的复杂度(是否包含数组、宏变量和宏)、数据仓库在维护报告代码方面的问题(如更新困难)、I/O问题以及报告的显示需求(如打印格式、网络显示)等。
7.
如果要启动一个新的数据仓库,SAS的哪些组件最值得使用?
对于支持分析功能的现代数据仓库,SAS的分析组件(可通过SAS Viya使用)是非常有价值的。这些组件提供了优化的统计分析功能,并且可以方便地连接到云数据存储(如Snowflake)。但如果数据仓库没有分析功能,需要根据具体需求选择合适的SAS组件。
6. 总结与展望
在数据可视化和报告领域,SAS虽然具有强大的功能和悠久的历史,但也面临着一些挑战。随着技术的不断发展,R和Tableau等工具在可视化方面展现出了独特的优势。通过结合SAS与这些外部工具,可以充分发挥各自的长处,实现更高效、更美观、更具交互性的数据可视化和报告。
未来,随着数据量的不断增加和用户对可视化需求的不断提高,SAS可能需要进一步改进其可视化和报告工具,以更好地适应市场需求。同时,数据仓库的管理者和开发者也需要不断学习和探索新的工具和技术,以提升数据处理和分析的能力。
以下是一个mermaid流程图,展示了从需求分析到选择合适工具进行可视化的过程:
graph LR
A[需求分析] --> B{报告类型}
B -->|传统打印报告| C[SAS]
B -->|现代交互式可视化| D[R或Tableau]
C --> E[生成报告]
D --> E
E --> F[评估效果]
F -->|不满意| A
F -->|满意| G[部署报告]
通过合理选择工具、优化数据处理流程和不断评估改进,可以实现SAS数据仓库的高效可视化和报告,为企业决策提供有力支持。
超级会员免费看
2753

被折叠的 条评论
为什么被折叠?



