In SPSS compatible datafiles, every variable has a property called
'Measure'. This attribute can be observed as the last column in 'variable
view mode' when the dataset is opened in e.g. GNU PSPP. The property is not
very important, but is used by many researchers to distinguish between
'Ordinal' and 'Nominal' variables; respectively ordered and unordered
factors in R.

The measure property does not seem to be extracted by the foreign::read.spss
function. It would be nice if there would be a way to read this information,
and add is as an attribute to every variable.

A very useful feature (at least for me :-) would be to include an option in
read.spss that variables which are currently converted to an R factor, will
be converted to an ordered.factor when Measure equals 'Ordinal'. Or in
pseudocode:

After reading in the spss dataset and converting it to a data.frame:
for var in data.frame:
    if ( class ( var ) == "factor" && Measure == "Ordinal" ) {
        class ( var ) <- c( "ordered", "factor" )
    }

Here a datafile to play with:

download.file("http://www.stat.ucla.edu/~jeroen/files/1991GS.sav",
"1991GS.sav");
mydata <- read.spss("1991GS.sav", to.data.frame=T);
sapply(mydata, is.ordered);

Thanks.

	[[alternative HTML version deleted]]

