Thanks to both of you for your help. I think I have got what I wanted.

vars.to.order <- sapply(d, FUN = function(x){length(unique(x))<=10}) ## check 
no. of unique values for each variable
#d[ , vars.to.order ] <- lapply( d[ , vars.to.order==TRUE ], factor) ## I 
didn't need this line. Is this step necessary?
d[ , vars.to.order ] <- lapply( d[ , vars.to.order==TRUE ], ordered)

Debs



________________________________

To: Rui Barradas <ruipbarra...@sapo.pt> 
Cc: Anthony Damico <ajdam...@gmail.com>; "r-help@r-project.org" 
<r-help@r-project.org> 
Sent: Tuesday, January 1, 2013 4:14 AM
Subject: Re: [R] Order variables automatically


Yes. That's true. All the variables are read in as numeric/integers.What I am 
looking for at this moment is if any variable has less than equals to 10 unique 
values (categories) then it is a factor.  Can that be incorporated?

Thanks,
Debs



________________________________
 From: Rui Barradas <ruipbarra...@sapo.pt>

Cc: Anthony Damico <ajdam...@gmail.com>; "r-help@r-project.org" 
<r-help@r-project.org> 
Sent: Tuesday, January 1, 2013 4:04 AM
Subject: Re: [R] Order variables automatically


Hello,

You must have a way of telling whether the variables are
    categorical. If they are factors, just not ordered factors, instead
    of grep the following might work.

vars.to.order <- sapply(yourdata, is.factor)

And the rest should be the same.

Hope this helps,

Rui Barradas

Em 01-01-2013 10:13, Debs Majumdar escreveu:

Sorry for not being clear.  I forgot to mention that the variable labels don't 
really say which are categorical/continuous. They are just I1, I2,...., I459. 
Out of these 459 variables, most are continuous and others are categorical. So, 
the grep command won't work here. Thanks, Debs ________________________________ 
From: Anthony Damico <ajdam...@gmail.com> Cc: "r-help@r-project.org" 
<r-help@r-project.org> Sent: Tuesday, January 1, 2013 12:24 AM
Subject: Re: [R] Order variables automatically # create an example data frame
yourdata <- 
    data.frame( 
        cat1 = c( 1 , 0 , 1 ) , 
        cont1 = c( 0 , 1 , 0 ) , 
        cat2 = c( 0 , 0 , 1 ) 
    )
# if this doesn't work for you,
# please ?dput some example data in the future :)
    
# figure out which variables contain the word 'cat'
vars.to.order <- grep( 'cat' , names( yourdata ) ) # convert all of those 
columns to factor..
yourdata[ , vars.to.order ] <- lapply( yourdata[ , vars.to.order ], factor )
# ..and then to ordered factor
yourdata[ , vars.to.order ] <- lapply( yourdata[ , vars.to.order ], ordered ) # 
confirm the results of the new data frame
class( yourdata )  # yourdata is a data frame.. sapply( yourdata , class )  # 
here's the class of each column yourdata  # here's the whole data set printed 
to the screen [[alternative HTML version deleted]] 
>
>
>______________________________________________ R-help@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. 
        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to