Here is a way to do it: > x <- scan(textConnection("1 48 1 45 2 50 2 42 1 41 2 51 1 52 1 43 2 > 52"), what=0L) Read 18 items > x <- matrix(x, ncol=2, byrow=TRUE) > colnames(x) <- c('gender', 'score') > x gender score [1,] 1 48 [2,] 1 45 [3,] 2 50 [4,] 2 42 [5,] 1 41 [6,] 2 51 [7,] 1 52 [8,] 1 43 [9,] 2 52 > # split out categories > y <- split(seq_len(nrow(x)), x[,1]) > # combine into new matrix > x.new <- do.call('rbind', lapply(y, function(.row) cbind(x[.row,], > index=seq_along(.row)))) > x.new gender score index [1,] 1 48 1 [2,] 1 45 2 [3,] 1 41 3 [4,] 1 52 4 [5,] 1 43 5 [6,] 2 50 1 [7,] 2 42 2 [8,] 2 51 3 [9,] 2 52 4 > >
On Nov 14, 2007 12:58 PM, lamack lamack <[EMAIL PROTECTED]> wrote: > > > > > > Dear all, How can I create an enumeration variable by groups? > > I have: > gender score 1 48 1 45 2 50 2 42 1 41 2 51 1 52 1 43 2 52 > > and Y would like to get: > > gender score index > 1 48 1 > 1 45 2 > 1 41 3 > 1 52 4 > 1 43 5 > 2 50 1 > 2 42 2 > 2 51 3 > 2 52 4 > best regards > _________________________________________________________________ > > [[replacing trailing spam]] > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve? ______________________________________________ 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.