[R] categorisation of continuous variables in R
David Winsemius
dwinsemius at comcast.net
Mon Nov 23 14:24:12 CET 2009
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
More information about the R-help
mailing list