[R] Read SAS data

Mike Reese mreese at jhu.edu
Thu Mar 25 21:44:41 CET 2010


I found its easier if you  convert your SAS data to the XPORT format (a SAS transport format).  Here's instructions for creating the transport file in SAS - use xport not cport.


I also found the import works better in R if you use the sasxport.get (instead of read.xport) function. I believe this function is part of the Hmisc library).  

BTW I'm looking for help with the write.dta command, specifically, exporting dataframes with variable labels that are readable in  STATA.  Do you know anything about that?


-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Nordlund, Dan (DSHS/RDA)
Sent: Thursday, March 25, 2010 2:32 PM
To: Nicola Sturaro Sommacal; r-help at r-project.org
Subject: Re: [R] Read SAS data

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Nicola Sturaro Sommacal
> Sent: Thursday, March 25, 2010 9:16 AM
> To: r-help at r-project.org
> Subject: [R] Read SAS data
> Hi!
> I need to import in R some SAS dataset (sas7bdat). I found two functions to
> do it:
> "read.ssd" from the package "foreign" and "sas.get" from "Hmisc".
> df = read.ssd(libname = path2data, sectionnames = "sasSmallDataset",
> tmpXport = path2data, tmpProgLoc = path2data, sascmd = path2sas)
> sas.get(libraryName = path2data, member = "sasSmallDataset", formats =
> FALSE, sasprog = path2sas, keep.log = TRUE)
> where path2data is the directory on which is contained the file sas,
> sasSmallDataset.sas7bdat are the data and path2sas is the path to SAS
> (C:/Programmi/SAS/SAS System/9.0/sas.exe).
> I obtain the following messages:
> from read.ssd:
> SAS failed.  SAS program at Z:/projects/QUANTIDE/import2R/.sas
> The log file will be import2R.log in the current directory
> Warning messages:
> 1: In file.symlink(oldPath, linkPath) :
>   symlinks are not supported on this platform
> 2: In read.ssd(libname = path2data, sectionnames = "sasSmallDataset",  :
>   SAS return code was 2
> from sas.get:
> Error in if (status != 0) { : argument is of length zero
> I have SAS 9.0 and R 2.10.1 running on Windows XP Pro.
> Can you help me to found a solution or can you provide an alternative way to
> import SAS data directly from R?
> Thank you very much.
> --
>  Nicola Sturaro Sommacal
> Quantide srl
> http://www.quantide.com

Here is one work-around for sas.get on MS Windows platforms.


Here is another thread that you might find useful.


Hope this is helpful,


Daniel J. Nordlund
Washington State Department of Social and Health Services
Planning, Performance, and Accountability
Research and Data Analysis Division
Olympia, WA  98504-5204

R-help at r-project.org mailing list
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list