write.foreign {foreign}R Documentation

Write Text Files and Code to Read Them


This function exports simple data frames to other statistical packages by writing the data as free-format text and writing a separate file of instructions for the other package to read the data.


write.foreign(df, datafile, codefile,
              package = c("SPSS", "Stata", "SAS"), ...)



A data frame


Name of file for data output


Name of file for code output


Name of package


Other arguments for the individual writeForeign functions


The work for this function is done by foreign:::writeForeignStata, foreign:::writeForeignSAS and foreign:::writeForeignSPSS. To add support for another package, eg Systat, create a function writeForeignSystat with the same first three arguments as write.foreign. This will be called from write.foreign when package="Systat".

Numeric variables and factors are supported for all packages: dates and times (Date, dates, date, and POSIXt classes) and logical vectors are also supported for SAS and characters are supported for SPSS.

For package="SAS" there are optional arguments dataname = "rdata" taking a string that will be the SAS data set name, validvarname taking either "V6" or "V7", and libpath = NULL taking a string that will be the directory where the target SAS datset will be written when the generated SAS code been run.

For package="SPSS" there is an optional argument maxchars = 32L taking an integer that causes the variable names (not variable labels) to be abbreviated to not more than maxchars chars. For compatibility with SPSS version 12 and before, change this to maxchars = 8L. In single byte locales with SPSS versions 13 or later, this can be set to maxchars = 64L.

For package="SPSS", as a side effect, the decimal indicator is always set by SET DECIMAL=DOT. which may override user settings of the indicator or its default derived from the current locale.


Invisible NULL.


Thomas Lumley and Stephen Weigand


## Not run: 
datafile <- tempfile()
codefile <- tempfile()
write.foreign(esoph, datafile, codefile, package="SPSS")

## End(Not run)

[Package foreign version 0.8-86 Index]