On Nov 23, 2009, at 8:14 AM, joris meys wrote:

Dear all,

I'm looking for a function comparable to switch, to categorize a
continuous variable in a few levels.

?cut


Off course that can be done with
a series of ifelse statements, but that looks rather clumsy. I looked
at switch, but couldn't figure out how to use it for this. I guess
that's not possible, as it only works with characters or integers, not
with intervals.

Basically, I'm looking for a clean way to do :
test <- runif(10,1,100)

> test <- runif(10,1,100)
> testcut <- cut(test, breaks=c(-Inf, 10, 50, 90, 100))
> table(testcut)
testcut
(-Inf,10]   (10,50]   (50,90]  (90,100]
        1         4         5         0



testFunc <-function(x){
x <-  ifelse(test<10,"lowest",
       ifelse(10<=test & test <50,"low",
         ifelse(50<=test & test <90,"high",
           ifelse(90<=test & test<100,"highest",NA)
         )
       )
     )
return(as.factor(x))
}

testFunc(test)

Thank you in advance


--
David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
[email protected] 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