[R] read.spss: option "to.data.frame" and string variables

David Winsemius dwinsemius at comcast.net
Tue Jan 12 12:08:41 CET 2010


It would be an significant undertaking to annotate all the places  
where the default behavior of strings-to-factors conversion might trip  
up the unwary. You are not the first by any means to complain. You  
might:
a) take the step that the Mayo Clinic has taken of setting the default  
in options() to FALSE, or
b) make your own read.spss with your desired arguments, and then put  
it in your .Rprofile.

-- 
David

On Jan 12, 2010, at 5:28 AM, RINNER Heinrich wrote:

> Dear R-users,
>
> I am using R version 2.10.1 and package foreign version 0.8-39 under  
> windows.
>
> When reading .sav-Files (PASW Statistics 18.0.1) containing string  
> variables, these are automatically converted to factors when using  
> option "to.data.frame = TRUE" (see example below).
> It's clear to me why this happens (the default behaviour of a call  
> to as.data.frame). But this is not always what one might want (or  
> even be aware of).
>
> So maybe one of the following improvements could be made?
> * Add a description of this behaviour in ?read.spss.
> * Or (even better): Add an extra argument, like: read.spss("C:\\temp\ 
> \test.sav", to.data.frame = TRUE, stringsAsFactors = FALSE).
>
> Just a suggestion;
> kind regards
> Heinrich.
>
> # EXAMPLE:
> Suppose there is a simple file "test.sav", containing one variable  
> ("x") of type STRING with 3 values (a,b,c).
>> library(foreign)
>> test <- read.spss("C:\\temp\\test.sav")
>> test
> $x
> [1] "a       " "b       " "c       "
>
> attr(,"label.table")
> attr(,"label.table")$x
> NULL
>
> attr(,"codepage")
> [1] 1252
>> is.factor(test$x)
> [1] FALSE
>> is.character(test$x)
> [1] TRUE
> # Ok, that's just fine. But things change when using option  
> "to.data.frame = TRUE":
>> test <- read.spss("C:\\temp\\test.sav", to.data.frame = TRUE)
>> test
>         x
> 1 a
> 2 b
> 3 c
>> is.factor(test$x)
> [1] TRUE
>> is.character(test$x)
> [1] FALSE
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list