[Rd] write.foreign creates incorrect SPSS syntax files when dataframe contains character variables (PR#8926)
uhkeller at web.de
uhkeller at web.de
Thu Jun 1 13:18:40 CEST 2006
Full_Name: Ulrich Keller
Version: 2.3.0 Patched (2006-04-28 r37936)
OS: Windows XP SP2
Submission from: (NULL) (158.64.77.43)
write.foreign(x,...,package="SPSS") creates an incorrect SPSS syntax file when x
contains character variables. SPSS expects character (string) variables to be
defined in a special way in DATA LIST commands:
* varname (A#)
where # is the width of the variable. write.foreign ignores this. As a result,
the contents of the character variables are not read into SPSS at all. For
example:
<CODE>
> x<-data.frame(v1=1,v2=I("some text"))
> library(foreign)
> write.foreign(x,stdout(),stdout(),package="SPSS")
1 "some text"
DATA LIST FILE= "1" free
/ v1 v2 .
VARIABLE LABELS
v1 "v1"
v2 "v2"
.
EXECUTE.
</CODE>
The variable definition following DATA LIST is:
/ v1 v2 .
What it should be is:
/ v1 * v2 (A#) .
where # is max(c(max(nchar(v2)), 255)).
More information about the R-devel
mailing list