write.foreign Write Text Files and Code to Read Them

Description

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.

Usage

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

Arguments

df

A data frame

datafile

Name of file for data output

codefile

Name of file for code output

package

Name of package

...

Other arguments for the individual writeForeign functions

Details

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.

Value

Invisible NULL.

Author(s)

Thomas Lumley and Stephen Weigand

Examples

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

## End(Not run)

Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.