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"), ...)
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 |
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") file.show(datafile) file.show(codefile) unlink(datafile) unlink(codefile) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.