[R] Defining categories

bibek sharma mbhpathak at gmail.com
Sat Oct 27 00:30:18 CEST 2012

```Thank you all for your suggestions. It really helped me a lot.
Best,
Bibek

On Thu, Oct 25, 2012 at 4:44 AM, arun <smartpink111 at yahoo.com> wrote:
> HI Petr,
>
> Thanks for sharing the function.  True, very efficient than cut.
>
> dat1\$cat<-findInterval(dat1\$V1, 1:6, rightmost.closed = T, all.inside = T)
>                                                   ^^^
>  #  May be the interval is 0:6.
> dat1\$cat1<-findInterval(dat1\$V1, 1:6, rightmost.closed = T, all.inside = T)
>  dat1\$cat2<-findInterval(dat1\$V1, 0:6, rightmost.closed = T, all.inside = T)
> #        V1 cat1 cat2
> #1 2.880556    2    3
> #2 0.616667    1    1
> #3 5.083333    5    6
> #4 0.858333    1    1
> #5 0.466667    1    1
> #6 2.936111    2    3
> A.K.
>
>
>
>
> ----- Original Message -----
> From: PIKAL Petr <petr.pikal at precheza.cz>
> To: arun <smartpink111 at yahoo.com>; Jorge I Velez <jorgeivanvelez at gmail.com>; bibek sharma <mbhpathak at gmail.com>
> Cc: R help <r-help at r-project.org>
> Sent: Thursday, October 25, 2012 5:29 AM
> Subject: RE: [R] Defining categories
>
> Hi
>
> Maybe also findInterval can be used
>
> dat1\$cat<-findInterval(dat1\$V1, 1:6, rightmost.closed = T, all.inside = T)
>
> It is said to be more efficient than cut.
>
> Regards
> Petr
>
>
>
>> -----Original Message-----
>> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
>> project.org] On Behalf Of arun
>> Sent: Thursday, October 25, 2012 3:32 AM
>> To: Jorge I Velez; bibek sharma
>> Cc: R help
>> Subject: Re: [R] Defining categories
>>
>> Hi,
>>  (Jorge: Thanks for the suggestion.)
>> cut? will be much easier.
>>
>> 2.880556
>> 0.616667
>> 5.083333
>> 0.858333
>> 0.466667
>> 2.936111
>> 4.258333
>> 0.258333
>> 2.033333
>> 2.583333
>> 1.088889
>> 0.447222
>> 1.872222
>> 0.080556
>> 4.033333
>> 4.116667
>> 1.633333
>> 2.147222
>>  dat1\$Categ<-cut(dat1\$V1,breaks=c(0,1,2,3,4,5,6))
>> #Either
>>
>> library(car)
>> dat1\$Categ<-
>> recode(dat1\$Categ,"'(0,1]'=1;'(1,2]'=2;'(2,3]'=3;'(3,4]'=4;'(4,5]'=5;'(
>> 5,6]'=6")
>> #or
>> dat1\$Categ<-as.numeric(gsub(".*\\,(\\d+).*","\\1",dat1\$Categ))
>> #formats the Categ column.
>> #        V1 Categ
>> #1 2.880556     3
>> #2 0.616667     1
>> #3 5.083333     6
>> #4 0.858333     1
>> #5 0.466667     1
>> #6 2.936111     3
>> A.K.
>>
>>
>>
>>
>>
>>
>> ________________________________
>> From: Jorge I Velez <jorgeivanvelez at gmail.com>
>> To: arun <smartpink111 at yahoo.com>
>> Cc: bibek sharma <mbhpathak at gmail.com>; R help <r-help at r-project.org>
>> Sent: Wednesday, October 24, 2012 7:27 PM
>> Subject: Re: [R] Defining categories
>>
>>
>> See ?cut for a simpler way of doing this.
>> HTH,
>> Jorge.-
>>
>>
>>
>> On Thu, Oct 25, 2012 at 10:02 AM, arun <> wrote:
>>
>> Hi,
>> >May be this:
>> >
>> >2.880556
>> >0.616667
>> >5.083333
>> >0.858333
>> >0.466667
>> >2.936111
>> >4.258333
>> >0.258333
>> >2.033333
>> >2.583333
>> >1.088889
>> >0.447222
>> >1.872222
>> >0.080556
>> >4.033333
>> >4.116667
>> >1.633333
>> >2.147222
>> >dat1\$category<-ifelse(dat1\$V1<=1 &dat1\$V1>0,1,ifelse(dat1\$V1>1 &
>> dat1\$V1<=2,2,ifelse(dat1\$V1>2&dat1\$V1<=3,3,ifelse(dat1\$V1>3&dat1\$V1<=4,
>> 4,ifelse(dat1\$V1>4&dat1\$V1<=5,5,6)))))
>> >
>> >
>> >#        V1 category
>> >#1 2.880556        3
>> >#2 0.616667        1
>> >#3 5.083333        6
>> >#4 0.858333        1
>> >#5 0.466667        1
>> >#6 2.936111        3
>> >A.K.
>> >
>> >
>> >
>> >
>> >----- Original Message -----
>> >From: bibek sharma <>
>> >To: r-help at r-project.org
>> >Cc:
>> >Sent: Wednesday, October 24, 2012 6:52 PM
>> >Subject: [R] Defining categories
>> >
>> >Hello R user,
>> >
>> >Data below represent year in decimal. I would like to catagorize it
>> >in such a way that any valye [0,1] goes to catagory 1 , (1,2] goes to
>> >catagory 2 and so on..
>> >Any suggestion how it can be done with if else statement or any other
>> way?
>> >
>> >2.880556
>> >0.616667
>> >5.083333
>> >0.858333
>> >0.466667
>> >2.936111
>> >4.258333
>> >0.258333
>> >2.033333
>> >2.583333
>> >1.088889
>> >0.447222
>> >1.872222
>> >0.080556
>> >4.033333
>> >4.116667
>> >1.633333
>> >2.147222
>> >
>> >Thank you for  your help.
>> >Bibek
>> >
>> >______________________________________________
>> >R-help at r-project.org mailing list
>> >https://stat.ethz.ch/mailman/listinfo/r-help
>> guide.html
>> >and provide commented, minimal, self-contained, reproducible code.
>> >
>> >
>> >______________________________________________
>> >R-help at r-project.org mailing list
>> >https://stat.ethz.ch/mailman/listinfo/r-help
>> guide.html
>> >and provide commented, minimal, self-contained, reproducible code.
>> >
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help