[R] tapply changing order of factor levels?
Bert Gunter
gunter.berton at gene.com
Wed May 6 16:59:00 CEST 2009
Jim's advice is patently false. Please read ?tapply for correct details.
Counterexample:
> y <- rnorm(6)
> x <- factor(rep(factor(letters[1:3],lev = letters[3:1]),2))
> x
[1] a b c a b c
Levels: c b a
> tapply(y,x,mean)
c b a
0.4545897 -1.0544782 0.4682773
Bert Gunter
Genentech Nonclinical Statistics
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of jim holtman
Sent: Wednesday, May 06, 2009 6:57 AM
To: Chirantan Kundu
Cc: r-help at r-project.org
Subject: Re: [R] tapply changing order of factor levels?
The result of 'tapply' is just a named vector and the names are in
alphabetical order. If you want them printed in a different order, then you
have to specify it. Since you have the order in 'mylevels', this will work:
> str(mysummary)
int [1:3(1d)] 4 3 2
- attr(*, "dimnames")=List of 1
..$ : chr [1:3] "IN0019800021" "IN0020020064" "IN0020020155"
> mysummary[mylevels]
IN0020020155 IN0019800021 IN0020020064
2 4 3
>
On Wed, May 6, 2009 at 9:45 AM, Chirantan Kundu <chirantan at 2pirad.com>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","IN001
9800021","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 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<http://www.r-project.org/posting
-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?
[[alternative HTML version deleted]]
______________________________________________
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