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.

Reply via email to