【问题标题】:Error when importing SAS xpt files in R在 R 中导入 SAS xpt 文件时出错
【发布时间】:2016-09-14 07:31:37
【问题描述】:

我正在尝试使用 SASxport 和外部包中的 read.xport 将 xpt 文件导入 R,但不知何故我一直收到以下错误消息:

Error in lookup.xport.inner(file) : 
  SAS transfer file has incorrect library header

使用 Hmisc 包中的 sasxport.get() 也会出现同样的错误。但是,在我的 PC 上的 SAS 查看器下,文件本身看起来很好。有没有人遇到过这个问题,或者你能提出解决方案吗?谢谢。

使用文本编辑器打开文件时,标题如下所示:

HEADER RECORD*******LIBRARY HEADER RECORD!!!!!!!000000000000000000000000000000  SAS     SAS     SASLIB  6.06    bsd4.2  

【问题讨论】:

  • 这可能是提供实际文件作为链接的合适情况,以便我们可以在自己的环境中进行测试。也可以试试sas7bdat
  • @CyrusMohammadian 我知道这会容易得多。但是,该文件是公司专有的,我无权披露它。对不起。
  • Xport 文件是二进制文件。如果将它们从一个系统移动到另一个系统,请确保将它们作为二进制文件而不是 ASCII 文件移动。如果插入或删除 '0D'x 字符,则会损坏文件。
  • XPT 文件不是二进制文件。请参阅 SAS 技术说明:“所有传输数据集记录的长度为 80 字节。如果没有足够的数据达到 80 字节,则用 ASCII 空白填充记录至 80 字节。所有字符数据都以 ASCII 存储,无论操作系统。”

标签: r import hmisc


【解决方案1】:

在我发布这个问题两年后,我最近发现包haven 中有一个函数read_xpt() 就像一个奇迹一样工作。

我猜这个包的框架和以前的包完全不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多