There are government data files available from this CDC web site, but they are in a weird SAS format.
How can I convert them into XML/CSV, i.e. something much simpler that can be read by scripts, etc?
There are government data files available from this CDC web site, but they are in a weird SAS format.
How can I convert them into XML/CSV, i.e. something much simpler that can be read by scripts, etc?
StatTransfer will convert SAS files to a variety of formats and it includes options to filter variables or observations, customize the delimiter, and change variable storage formats during the transfer.
AM will also covert data, but it's less powerful/flexible. AM is freeware and written for Windows.
You can do this with R-cran, if you have SAS xpt
files. Use the foreign
and hmisc
packages.
xpt = sasxport.get("xpt/DEMO.xpt")
write.csv(xpt, file="demo.csv")
library('foreign')
data = read.xport("C:\\Users\\x\\Downloads\\aaa.XPT")
write.csv(data, file="C:\\Users\\x\\Downloads\aaa.csv)
Jan 12, 2016 at 22:59
SAS Institute (the company that makes SAS) produces a viewer for SAS data sets.
Note that SAS program files usually have the extension .sas
, whereas the data files themselves usually have the extension .sas7bdat
.
You can extract data from .SAS7BDAT files using dsread from Oceanview Consultancy, see
It handles files from most platforms though may require registration for some platforms. It's a fast and easy-to-use command-line Windows program that also runs under Wine on Linux. No installation required, just run the .exe.
I realise that this is an old question but it shows up in relevant web searches so including this answer will help anyone else looking to extract data from the proprietary SAS7BDAT format.
Disclaimer: I am the developer of dsread.
If you're talking about SAS XPT files, you can use the xport
Python module.
import xport
with open('example.xpt', 'rb') as f:
for row in xport.Reader(f):
print row