R医疗保障因素
年前,我遇到了一份报告,该报告使我获得了一个有关医生和其他医疗保健提供者的医疗保险付款和使用情况的新数据集。数据引起了极大的轰动,突显了对个别医生和实践的极端支付。2012年,只有100位医生获得了1.6亿美元的Medicare报销,其中一位佛罗里达眼科医生的净收入超过2100万美元。
为了了解这些数据,我确认了主流媒体早些时候发布的许多分析。随着时间的推移,随着对年度数据的添加,我对数据的兴趣也越来越大。此时,有四个文本文件(2012-2015年),每个文件超过900万条记录。这些数据的分析模式可以总结如下:
1)易于下载的文件,通常是定界的或xls。这些文件可以手动复制,也可以通过编程方式移动。2)多个文件,通常按时间或其他变量来确定尺寸。3)文件的通用一致格式,以便“读取”在每个文件上的工作方式相似,并且数据可以“堆叠”。4)给定或分配的结构化文件命名约定,该约定为数据加载提供维度信息。日期/时间是最常见的剪辑。
我对数据的兴趣与其格式和内容息息相关。那些熟悉R的人无疑会暴露于这一因素 数据类型,用于存储分类或有序数据。因素由级别和标签组成,并表示为每条记录一个整数,表示该级别并指向仅存储一次的相关字符标签。因子与字符属性“竞争”,因为通常可以将因子存储为字符,反之亦然。历史上,因子主要用于表示维度属性,例如性别,种族或收入类别,但至少从理论上讲,因子变量可能有机会为唯一字符列值相对较少的任何字符列节省存储空间与记录总数相比。
截止到今天,拥有3700万条记录和30个属性,仅此数据的规模就带来了挑战,可以帮助回答较小的捏造数据集无法解决的问题。而且,名称,街道地址和城市等许多属性本质上都是字符,可以测试如何最佳地存储它们。因此,对我来说,尝试使用字符存储选项的决定是不费吹灰之力的。
为了进行测试,我将四个年度文件下载到我的笔记本中,使用Jupyter Notebook和Microsoft R 3.4.3开发脚本。使用R data.table包,我创建了两个版本的医疗医生结构,第一个版本将字符列存储为字符,第二个版本与要素存储相同。我比较了每个data.table的内存需求,并将性能/大小与可序列化导出文件的写入/读取进行了对比。
题库