On Tue, 13 Nov 2012, Paul Artes wrote:
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]) }
Dunno what "tmp" is... but try this:
my.data$item.number <- 1
my.data$item.number <- ave( my.data$item.number, my.data$person,
FUN=cumsum )
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...1k
______________________________________________
R-help@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.