【问题标题】:XPT to CSV Conversion? [closed]XPT 到 CSV 转换? [关闭]
【发布时间】:2011-12-04 17:51:43
【问题描述】:

也许这是放错地方了,但我不太确定该放在哪里。

我有一个非常大的 .XPT 格式的压缩 SAS 文件。我想将其转换为逗号分隔的格式。该文件太大而无法在 R 中加载。我的机器上没有 SAS,也没有任何获取它的方法。

有什么建议吗?哪里有转换器?我找不到使用谷歌的人。

【问题讨论】:

  • 有一个名为 StatTransfer 的程序(来自 Stata 的制造商)可以运行。但它不是免费的。

标签: r csv sas


【解决方案1】:

谷歌搜索转换“将 sas 转换为 csv”出现 this link,这指出了几个可能的解决方案。

AM Statistical Software 是美国研究所生产的免费统计软件,看起来可以导入 SAS 传输文件,并以大约 150 种不同格式输出文件。我猜.csv 就是其中之一!

【讨论】:

  • 谢谢,看起来可以解决问题。
  • 太棒了。我很高兴自己了解它。似乎它可能会在将来的某个时候派上用场。但是,如果结果不起作用,请务必记下。谢谢。
  • 刚刚测试,AM Statistical Software 可以,但是需要将.XPT 文件重命名为.V5X
【解决方案2】:

我相信 R 中的一个或多个包中有一个 read.xport 函数,它可以读取 SAS 传输文件。从那里你可以使用write.csv 之类的东西来保存它。

【讨论】:

  • read.xportpackage:foreign 中,但显然.XPT 文件太大而无法直接读入R。
【解决方案3】:

如果您可以使用 Python,我刚刚发布了 a library 可能会对此有所帮助。转储到 CSV 看起来像这样(未经测试):

import xport, csv
with xport.XportReader('in.xpt') as reader:
    with open('out.csv', 'rb') as out:
        writer = csv.DictWriter(out, [f['name'] for f in reader.fields])
        for row in reader:
            writer.writerow(row)

文件被视为流,因此文件大小无关紧要(只要您不调用 reader.record_count(),它必须查找文件末尾)。

如果你尝试这个,请告诉我——这个库适合我,但我还没有在很多 .xpt 文件上尝试过。

【讨论】:

  • 嗨,杰克,很棒的图书馆。它与 Python 3.* 不兼容是真的吗?当我尝试pip install 然后导入它时,print 语句出现错误(由于缺少括号;在 Python 3.* 中是必需的)。我为 Python 2.7 安装了它。有没有办法告诉 pip 我有哪个 Python 版本?有没有办法可以编辑您的库以与 Python 3.* 兼容?谢谢!
  • 还有来自this fileTypeError: Oops -- only 8-byte floats are currently implemented. Can't read field {'nfl': 0, 'name': 'DXIHE ', 'nifd': 0, 'niform': ' ', 'nfill': '\x00\x00', 'ntype': 'numeric', 'nfj': 0, 'label': 'Head Imputation Indicator ', 'nform': ' ', 'nvar0': 5, 'nhfun': 0, 'field_length': 3, 'npos': 32, 'num_decimals': 0, 'nifl': 0}.
  • 最新版本的xport将在命令行上运行:python -m xport example.xpt > example.csv
【解决方案4】:

为了避免读者浪费时间,我会说我刚刚试用了 AM Statistical Software(2011 年 8 月 14 日 0.06.04 Beta 版)。它接受各种令人印象深刻的 SAS 文件,但 .xpt .

【讨论】:

    【解决方案5】:

    不幸的是,我太新了,无法发表评论,并且有一段时间没有激活,但我发现 AM 包可以完美运行。

    您需要从他们的网站下载单独的扩展程序,经过试验,我发现您需要选择文件类型“SAS Transport (*.v5x)”,进入目录,然后手动输入相应框中的文件名。它会正确加载。

    加载文件的方式有点奇怪,但根据我的需要,它就像人们在他们的网站上声称的那样工作。

    【讨论】:

      【解决方案6】:

      Python 有 xport 库 https://pypi.python.org/pypi/xport/ 安装库

      $ pip install xport
      $ python -m xport example.xpt > example.csv
      

      【讨论】:

      • 这对我来说很完美。
      【解决方案7】:

      我意识到这个线程已经很老了。这是我刚刚找到的最好的一个,并且有几个很好的建议。我想为其他可能寻找从 XPT 转换为 CSV 的简单方法的人添加另一个免费选项。

      SAS 制作了 SAS 通用查看器,可以打开多种文件类型进行查看。它也会将文件保存为 CSV 格式。我尝试的唯一文件类型是 XPT,它非常简单和快速。

      SAS 网站下载链接:https://support.sas.com/downloads/browse.htm?cat=74

      根据 1.3 版的用户指南: 使用 SAS Universal Viewer,您可以查看以下类型的文件:

      • SAS 数据集,包括在 Windows 以外的平台上创建的数据集

      • SAS v5 传输文件

      • SAS 程序、日志和列表

      • 一般文本文件

      • 在 Internet Explorer 中打开的 HTML 和其他文件类型

      https://support.sas.com/documentation/cdl/en/univiewerug/65066/PDF/default/univiewerug.pdf

      【讨论】:

        猜你喜欢
        • 2020-11-05
        • 2013-09-27
        • 2020-10-23
        • 2018-08-08
        • 1970-01-01
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多