[R] Better way of Grouping?

arun smartpink111 at yahoo.com
Fri Sep 28 22:31:31 CEST 2012


Hi,
You can also use grep() to subset:


LD<-paste0(rep(rep(c(3,4),each=4),2),c(rep("L",8),rep("D",8)))
set.seed(1)
dat1<-data.frame(LD=LD,value=sample(1:15,16,replace=TRUE))
dat2<-within(dat1,{LD<-as.character(LD)})
dat2[grepl(".*L",dat2$LD),] # subset all L values
dat2[grepl(".*D",dat2$LD),] # subset all D values
 dat2[grepl("3D",dat2$LD),]
dat2[grepl("4D",dat2$LD),]


A.K.




----- Original Message -----
From: Charles Determan Jr <deter088 at umn.edu>
To: r-help at r-project.org
Cc: 
Sent: Friday, September 28, 2012 2:59 PM
Subject: [R] Better way of Grouping?

Hello R users,

This is more of a convenience question that I hope others might find useful
if there is a better answer.  I work with large datasets that requires
multiple parsing stages for different analysis.  For example, compare group
3 vs. group 4.  A more complicated comparison would be time B in group 3 of
group L with B in group 4 of group L.  I normally subset each group with
the following type of code.

data=read(...)

#L v D
L=data[LvD %in% c("L"),]
D=data[LvD %in% c("D"),]

#Groups 3 and 4 within L and D
group3L=L[group %in% c("3"),]
group4L=L[group %in% c("3"),]

group3D=D[group %in% c("3"),]
group4D=D[group %in% c("3"),]

#Times B, S45, FR2, FR8
you get the idea


Is there a more efficient way to subset groups?  Thanks for any insight.

Regards,
Charles

    [[alternative HTML version deleted]]

______________________________________________
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