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