On Wed, Sep 30, 2009 at 2:42 PM, Douglas Bates <ba...@stat.wisc.edu> wrote: > On Wed, Sep 30, 2009 at 2:43 AM, Dieter Menne > <dieter.me...@menne-biomed.de> wrote: > >> Dear List, > >> creating factors in a given non-default orders is notoriously difficult to >> explain in a course. Students love the ifelse construct given below most, >> but I remember some comment from Martin Mächler (?) that ifelse should be >> banned from courses. > >> Any better idea? Not necessarily short, easy to remember is important. > >> Dieter > >> data = c(1,7,10,50,70) >> levs = c("Pre","Post") >> >> # Typical C-Programmer style >> factor(levs[as.integer(data >10)+1], levels=levs) >> >> # Easiest to understand >> factor(ifelse(data <=10, levs[1], levs[2]), levels=levs) > > Why not > >> factor(data > 10, labels = c("Pre", "Post")) > [1] Pre Pre Pre Post Post > Levels: Pre Post > > All you have to remember is that FALSE comes before TRUE.
And besides, Frank Harrell will soon be weighing in to tell you why you shouldn't dichotomize in the first place. ______________________________________________ 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.