[R] Creating Observation ID

William Dunlap wdunlap at tibco.com
Tue May 10 00:17:38 CEST 2011


Does the following work for you?

 > df2 <- transform(df, ObsID=ave(rep(0,length(Group)), Group,
FUN=seq_along))
 > head(df2)
        Value Group ObsID
 1 -0.0025132     B     1
 2 -1.2456156     A     1
 3 -2.0531704     B     2
 4  1.5861770     B     3
 5  0.1900908     A     2
 6  0.7197067     B     4

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Robert Baer
> Sent: Monday, May 09, 2011 2:22 PM
> To: R-help at r-project.org
> Subject: [R] Creating Observation ID
> 
> If I have a data frame something like:
> Value=rnorm(30)
> Group = sample(c('A','B','C'), 30, replace=TRUE)
> df = data.frame(Value, Group)
> 
> It seems like it should be simple to create an 'ObsID' column 
> which indicates the observation order of each Value within 
> each of the 3 groups.  Somehow, I can't quite see how to do 
> it without manually sub-setting the parent data frame and 
> then putting it back together again.  
> 
> Anyone able to get me started on a cleaner (more R-like) approach?
> 
> Thanks,
> 
> Rob
> 
> ------------------------------------------
> Robert W. Baer, Ph.D.
> Professor of Physiology
> Kirksville College of Osteopathic Medicine
> A. T. Still University of Health Sciences
> 800 W. Jefferson St.
> Kirksville, MO 63501
> 660-626-2322
> FAX 660-626-2965
> 
> 	[[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