XPT到CSV转换?

时间:2011-10-10 18:24:32

标签: r csv sas

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

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

有什么建议吗?某处有转换器吗?我找不到一个使用谷歌。

7 个答案:

答案 0 :(得分:8)

如果您可以使用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文件。

答案 1 :(得分:4)

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

AM Statistical Software是由美国研究院制作的免费统计软件,看起来它可以导入SAS传输文件,并输出大约150种不同格式的文件。我猜他们就是.csv

答案 2 :(得分:2)

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

答案 3 :(得分:2)

为了节省读者浪费时间,我会说我刚试过AM Statistical Software(版本0.06.04 Beta Aug 14 2011)。它接受各种令人印象深刻的SAS文件,但不是 .xpt。

答案 4 :(得分:0)

不幸的是,我的评论太新了,而且暂时还没有激活,但我发现AM软件包运行正常。

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

加载文件的一种奇怪方式,但根据我所需要的,它的工作方式与人们在其网站上声称的一样。

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

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

SAS使SAS Universal Viewer可以打开几种文件类型进行查看。它将文件也保存为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