【发布时间】:2015-07-12 11:06:40
【问题描述】:
R 有哪些选项可以将本机 SAS 格式 sas7bdat 的文件读入 R?
例如,NCES Common Core 包含以这种格式保存的大量数据文件的存储库。具体而言,让我们专注于尝试读取 1997-98 年来自 LEA Universe 的 this 文件,其中包含从 A 到 I 的所有州的实体的教育机构级人口统计数据。
这是来自 SAS 的数据预览:
将这些数据带入我的 R 环境的最简单方法是什么?我没有任何可用的 SAS 版本,也不愿意付费,所以简单地将其转换为 .csv 会很麻烦。
【问题讨论】:
-
当然,我已经用了好几年了,它们总是看起来很挑剔或缺少我需要的一些功能,而且有几个可供选择(并且不断出现更多),所以它会是很高兴有一个 wiki 来解决这样一个常见的问题。我几乎放弃了“读取 sas 数据集”包——我从来不知道如何让
sas7bdat应用格式,我只是再次尝试haven,它给了我一个错误。如果必须,我使用Hmisc::sas.get的包装器来读取 sas 数据集目录并返回数据帧列表,尽管它需要一个工作 sas,但它一直对我有用 -
@rawr 如果找到时间和文件的公开,请添加一个答案来举例说明
haven的不足之处:) 在这种情况下,虽然Hmisc需要一个工作的 SAS,但知道替代方案是有帮助的. -
haven可以很好地读取文件。我还需要这些格式,因为我从 sas 获得的大量数据基本上没有格式化。当haven没有给我一个模糊的错误时,它并没有真正应用这些格式——只将它们保留为需要little more user legwork 的属性——不多,不难,但有错误的余地。Hmisc::sas.get(和我使用的包装器 fn)在 sas 中完成所有这些(可选)并返回格式化的数据帧 -
我遇到的另一个问题是,如果您尝试使用在 windows 上的 unix/linux 上创建的目录(反之亦然),您会遇到更多错误。但是,如果您有 proc 格式代码,则可以使用 sas 创建平台原生的格式目录。由于have需要目录,如果你只有proc格式的代码,你似乎是SOL