[R] numbering observations: help please!

arun smartpink111 at yahoo.com
Wed Nov 14 13:41:48 CET 2012


HI, 
Try this: 
my.data$item_Num<- ave(my.data[,1],my.data[,1],FUN=seq_along) 

head(my.data) 
#  person item_Num 
#1      1        1 
#2      1        2 
#3      1        3 
#4      1        4 
#5      2        1 
#6      2        2 

#or, 
unlist(tapply(my.data[,1],my.data[,1],FUN=seq_along),use.names=FALSE) 
# [1] 1 2 3 4 1 2 1 2 3 4 5 6 7 1 2 3
#or
 unlist(sapply(split(my.data,my.data[,1]),function(x) 1:nrow(x)),use.names=FALSE)
# [1] 1 2 3 4 1 2 1 2 3 4 5 6 7 1 2 3

A.K.


----- Original Message -----
From: Paul Artes <paul_h_artes at yahoo.co.uk>
To: r-help at r-project.org
Cc: 
Sent: Tuesday, November 13, 2012 8:50 PM
Subject: [R] numbering observations: help please!

Dear Friends,

I have the very simple problem of needing to number observations in a data
frame. After scratching the rest of my hair off my head without inspiration,
I'm using a silly loop. I'm sure that there is a much more elegant and
faster solution - can anyone help? 

Here is an example:

my.data <- data.frame (person=c(1,1,1,1,2,2,3,3,3,3,3,3,3,4,4,4))   # now I
want to number those observations sequentially 
# for each person

my.data$item.number <- 0
for (i in 1:length(unique(my.data$person))) {
    my.data$item.number [which (my.data$person == unique(my.data$person)[i])]
<- seq (1:dim(tmp)[1]) }






--
View this message in context: http://r.789695.n4.nabble.com/numbering-observations-help-please-tp4649457.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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