[R] Defining categories
arun
smartpink111 at yahoo.com
Thu Oct 25 03:32:00 CEST 2012
Hi,
(Jorge: Thanks for the suggestion.)
cut? will be much easier.
dat1<-read.table(text="
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
",sep="",header=FALSE)
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.
head(dat1)
# 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:
>dat1<-read.table(text="
>
>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
>",sep="",header=FALSE)
>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)))))
>
>
> head(dat1)
># 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
>PLEASE do read the posting guide http://www.R-project.org/posting-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
>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list