[R] Reordering levels of a factor when the factor is part of a data frame

Ista Zahn istazahn at gmail.com
Mon Feb 6 20:17:34 CET 2012


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.
>



More information about the R-help mailing list