In R, I have used the write.foreign() function from the foreign library in order to write a data frame as a SAS data set.
write
You can do it easily with SAS : just have a test with SAS/IML (proc iml) or IMLPlus (object oriented version) with SAS/IML Studio.
See this : http://support.sas.com/documentation/cdl/en/imlsstat/63827/HTML/default/viewer.htm#imlsstat_statr_sect004.htm
or download SAS/IML Studio for free : http://www.sas.com/apps/demosdownloads/92_SDL_sysdep.jsp?packageID=000721 This release of SAS/IML Studio provides the capability to interface with the R language.
I'm not much of a SAS user either, but I've used write.xport()
before and it's worked fine. My crude understanding is that there are two types of SAS files, internal ones and XPORT files. The XPORT ones are the ones that are more compatible across different versions, architectures, etc.
write.foreign
with option package="SAS"
actually writes out a comma-delimited text file and then creates a script file with SAS statements to read it in. You have to run SAS and submit the script to turn the text file into a SAS dataset. Your call should look more like
write.foreign(df=test.df, datafile="test.csv", codefile="test.sas", package="SAS")
Note the different extension. Also, write.foreign
writes factor variables as numeric variables with a format controlling their appearance -- ie, the R definition of a factor. If you just want the character representation, you'll have to convert the factors via as.character
before exporting.