Judith Flores
2012-Feb-06 19:03 UTC
[R] Reordering levels of a factor when the factor is part of a data frame
Hello R-users,
I have a data frame whose names of columns I don't know a priori, but the
user of my code will know them. The user is supposed to save the name of the
column that will need some reordering of the levels of the factor later on. The
name of the column will be saved in an object called:
variab
the data frame is called df.
If I try to the do following:
df[variab]<-factor(df[variab],
levels=c("A2B","B31","C33"))
it won't work because df[variab] is a data frame. The reason for reordering
the levels of the factor is because once that variable is plotted, the levels of
the factor need to appear in certain order.
How can I re-order the levels of a factor whose name I don't know?
Thank you,
Judith
[[alternative HTML version deleted]]
Ista Zahn
2012-Feb-06 19:17 UTC
[R] Reordering levels of a factor when the factor is part of a data frame
Hi Judith,
You should use double brackets, like this:
df[[variab]]<-factor(df[[variab]],
levels=c("A2B","B31","C33"))
see ?"[" for details, noting that the help page assumes that you know
data.frames are list-like objects.
Best,
Ista
On Mon, Feb 6, 2012 at 2:03 PM, Judith Flores <juryef at yahoo.com>
wrote:> Hello R-users,
>
> ? ?I have a data frame whose names of columns I don't know a priori,
but the user of my code will know them. The user is supposed to save the name of
the column that will need some?reordering of the levels of the factor?later on.
The name of the column will be saved in an object called:
>
> variab
>
> the data frame is called df.
>
>
> If I try to the do following:
>
> df[variab]<-factor(df[variab],
levels=c("A2B","B31","C33"))
>
> it won't work because df[variab] is a data frame. The reason for
reordering the levels of the factor is because once that variable is plotted,
the levels of the factor need to appear in certain order.
>
> ? ?How can I re-order the levels of a factor whose name I don't know?
>
>
> Thank you,
>
> Judith
> ? ? ? ?[[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.
>
Ernest Adrogué
2012-Feb-06 20:29 UTC
[R] Reordering levels of a factor when the factor is part of a data frame
6-02-2012, 11:03 (-0800); Judith Flores escriu:> The name of the column will be saved in an object called: > > variab > > the data frame is called df. > > > If I try to the do following: > > df[variab]<-factor(df[variab], levels=c("A2B","B31","C33")) > > it won't work because df[variab] is a data frame.I think you need to use df[[variab]] instead. Cheers, Ernest