我想将.sas7bdat文件转换为.csv / txt格式,以便我可以将其上传到配置单元表中。 我从外部服务器收到.sas7bdat文件,但我的机器上没有SAS。
提前致谢。
答案 0 :(得分:7)
使用其中一个R外包读取该文件,然后使用该工具转换为CSV。
http://cran.r-project.org/doc/manuals/R-data.pdf 第12页
改为使用SAS7BDAT包。它似乎忽略了自定义格式化,读取基础数据。
在SAS:
proc format;
value agegrp
low - 12 = 'Pre Teen'
13 -15 = 'Teen'
16 - high = 'Driver';
run;
libname test 'Z:\Consulting\SAS Programs';
data test.class;
set sashelp.class;
age2=age;
format age2 agegrp.;
run;
在R:
install.packages(sas7bdat)
library(sas7bdat)
x<-read.sas7bdat("class.sas7bdat", debug=TRUE)
x
答案 1 :(得分:3)
python包sas7bdat
,可用here,包含一个用于读取sas7bdat文件的库:
from sas7bdat import SAS7BDAT
with SAS7BDAT('foo.sas7bdat') as f:
for row in f:
print row
和命令行程序,无需编程
$ sas7bdat_to_csv in.sas7bdat out.csv
答案 2 :(得分:2)
如果这是一次性的,您可以从这里免费下载SAS系统查看器(注册帐户后也是免费的):
http://support.sas.com/downloads/package.htm?pid=176
然后,您可以使用查看器打开sas数据集并将其另存为csv文件。据我所知,没有CLI,但如果你真的想要,你可以编写一个autohotkey脚本或类似的东西来将SAS数据集转换为csv。
也可以使用OLE DB的SAS提供程序读取SAS数据集,而无需实际安装SAS,这可以在这里找到:
http://support.sas.com/downloads/browse.htm?fil=0&cat=64
然而,这是相当复杂的 - 如果你想了解一些文档,可以在这里找到:
http://support.sas.com/documentation/cdl/en/oledbpr/59558/PDF/default/oledbpr.pdf
答案 3 :(得分:2)
我最近写了这个包,允许你使用Hadoop / Spark将sas7bdat转换为csv。它能够分割巨大的sas7bdat文件,从而实现高并行性。解析还使用@Ashpreet
建议的parso答案 4 :(得分:1)
感谢您的帮助。我在java中使用parso实用程序结束了我们,它就像一个魅力。该实用程序将行作为对象数组返回,我将其写入文本文件。
我从http://lifescience.opensource.epam.com/parso.html
引用了该实用程序由于