Hi,

I meant that your problem occured because the levels of mylevels are not ordered whereas tapply uses the ordered levels for printing. If you order them (look under), you can see the results of the tapply has the same order as the levels of myfactor

>mydata<-c("IN0020020155","IN0019800021","IN0020020064","IN0020020155","IN0019800021","IN0019800021","IN0020020064","IN0020020064","IN0019800021")
> mylevels<-c("IN0020020155","IN0019800021","IN0020020064")
> myfactor<-factor(mydata,levels=mylevels)
> myfactor
[1] IN0020020155 IN0019800021 IN0020020064 IN0020020155 IN0019800021
[6] IN0019800021 IN0020020064 IN0020020064 IN0019800021
Levels: IN0020020155 IN0019800021 IN0020020064
> levels(myfactor) <- sort(mylevels)
> myfactor
[1] IN0019800021 IN0020020064 IN0020020155 IN0019800021 IN0020020064
[6] IN0020020064 IN0020020155 IN0020020155 IN0020020064
Levels: IN0019800021 IN0020020064 IN0020020155
> tapply(myfactor,mydata,length)
IN0019800021 IN0020020064 IN0020020155
          4            3            2


Chirantan Kundu wrote:
Hi Alain,

I tried levels(myfactor) as you suggested.

> levels(myfactor)
[1] "IN0020020155" "IN0019800021" "IN0020020064"

The order is preserved, no alphanumerical sorting done here.
Regards.

On Wed, May 6, 2009 at 7:35 PM, Alain Guillet <alain.guil...@uclouvain.be <mailto:alain.guil...@uclouvain.be>> wrote:

    Hi,

    I don't believe the problem is related to tapply. I would say it
    is because of the factor. In fact, the order of a factor is given
    by the alphanumerical order of his levels. You can see it with
    levels(myfactor).
    I you want to change the order, redefine the levels of myfactor
    with the expected order or use the function ordered.

    Alain


    Chirantan Kundu wrote:

        Hi,

        Does tapply change the order when applied on a factor? Below
        is the code I
        tried.

            mylevels<-c("IN0020020155","IN0019800021","IN0020020064")

        
mydata<-c("IN0020020155","IN0019800021","IN0020020064","IN0020020155","IN0019800021","IN0019800021","IN0020020064","IN0020020064","IN0019800021")
            myfactor<-factor(mydata,levels=mylevels)
            myfactor
        [1] IN0020020155 IN0019800021 IN0020020064 IN0020020155
        IN0019800021
        IN0019800021 IN0020020064 IN0020020064 IN0019800021
        Levels: IN0020020155 IN0019800021 IN0020020064
            summary(myfactor)
        IN0020020155 IN0019800021 IN0020020064
                  2            4            3

        # Everything fine upto this point. The order of levels is
        maintained as it
        is.

            mysummary<-tapply(myfactor,mydata,length)
            mysummary
        IN0019800021 IN0020020064 IN0020020155
                  4            3            2

        # Now the order has changed.

        Is this the expected behavior? Any idea on how to avoid the
        change in order?

        Regards,
        Chirantan

        ____________________________________
        Visit us at http://www.2pirad.com

               [[alternative HTML version deleted]]

        ______________________________________________
        R-help@r-project.org <mailto: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.


-- Alain Guillet
    Statistician and Computer Scientist

    SMCS - Institut de statistique - Université catholique de Louvain
    Bureau d.126
    Voie du Roman Pays, 20
    B-1348 Louvain-la-Neuve
    Belgium

    tel: +32 10 47 30 50


____________________________________
Visit us at http://www.2pirad.com



--
Alain Guillet
Statistician and Computer Scientist

SMCS - Institut de statistique - Université catholique de Louvain
Bureau d.126
Voie du Roman Pays, 20
B-1348 Louvain-la-Neuve
Belgium

tel: +32 10 47 30 50

______________________________________________
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