[R] adding row ID numbers by group
Felipe Carrillo
mazatlanmexico at yahoo.com
Tue Mar 2 19:08:59 CET 2010
Like this?
group<- c(1,1,1,1,2,2,2,2,2,3,3,3,3,3,3)
var2<- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
data<-data.frame(group, var2)
data
ddply(data,"group",transform,ID=1:length(group))
Felipe D. Carrillo
Supervisory Fishery Biologist
Department of the Interior
US Fish & Wildlife Service
California, USA
----- Original Message ----
> From: Alexander Schwall <alexander.schwall at gmail.com>
> To: r-help at r-project.org
> Sent: Tue, March 2, 2010 9:53:19 AM
> Subject: [R] adding row ID numbers by group
>
> Hello R community,
I am hoping for some help with the following
> problem.
I have a data frame containing various groups. These groups are
> identified
by a grouping variable. I would like to add a sequential ID number
> to each
group to later sort these individuals within each group by this ID
> number.
Here is what the final result should look like:
ID
> group var2
1 1 1
2
> 1 2
3 1 3
4
> 1 4
1 2 5
2
> 2 6
3 2
> 7
4 2 8
5 2
> 9
1 3 10
2 3
> 11
3 3 12
4 3
> 13
5 3 14
I have created the following
> code to loop through this and compare a given
row with the following row for
> the grouping variable. If a given row would
be different from the then
> following row, the ID number would be reset and I
would start counting up
> again. The problem that I am encountering that at
the bottom of the data
> frame the if statement runs out of a condition
against which to compare the
> last row.
Here is what I did:
group<-
> c(1,1,1,1,2,2,2,2,2,3,3,3,3,3,3)
var2<-
> c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
data<-data.frame(group,
> var2)
data
#IDN is the desired ID number by group
IDN
> <-numeric(length(test$var2))
IDN
for (i in
> 1:(length(data$group))) {
if(data[i,1] <
> (length(data$group))){
if(data[i,1] ==
> data[i+1,1]){
IDN[i]<-
> sum(IDN[i-1],1)}
else{
> IDN[i]<- -55} #for now an arbitrary
> value
}
if(data[i,1] ==
> (length(data$group))) {
IDN[i] <- 99
> #for now an arbitrary value
}
> }
IDN
Is there maybe an easier way to do this? Any
> thoughts would be very
appreciated since I am running out of
> ideas.
Thanks
Alexander
[[alternative HTML
> version deleted]]
______________________________________________
> ymailto="mailto:R-help at r-project.org"
> href="mailto:R-help at r-project.org">R-help at r-project.org mailing list
> href="https://stat.ethz.ch/mailman/listinfo/r-help" target=_blank
> >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