[R] group data based on row value
arun
smartpink111 at yahoo.com
Thu May 23 00:06:05 CEST 2013
Hi,
Try:
dat<- read.table(text="
Var
0
0.2
0.5
1
4
6
",sep="",header=TRUE)
res1<-within(dat,group<-factor(findInterval(Var,c(-Inf,0.1,0.6),rightmost.closed=TRUE),labels=LETTERS[1:3]))
res1
# Var group
#1 0.0 A
#2 0.2 B
#3 0.5 B
#4 1.0 C
#5 4.0 C
#6 6.0 C
#or
res2<-within(dat,group<-factor(cut(Var,breaks=c(-Inf,0.1,0.6,Inf)),labels=LETTERS[1:3]))
identical(res1,res2)
#[1] TRUE
A.K.
>hey, I want to divide my data into three groups based on the value in one
>column with group name.
>
>dat:
>
>Var
>0
>0.2
>0.5
>1
>4
>6
>
>I tried:
>
>dat <- cbind(dat, group=cut(dat$Var, breaks=c(0.1,0.6)))
>
>But it doesnt work, I want to group those <0.1 as group A, 0.1-0.6 as group
>B, >0.6 as group C
>
>Thanks for your help!
More information about the R-help
mailing list