Re: [R] Create counter variable for subsets without a loop

2010-05-18 Thread Bart Joosen
Solved it another way, without apply: data2 <- data[order(data$state.region,-data$Population),] cx <- as.numeric(data2$state.region) data2$rank <- cumsum(rep(1,length(cx)))-match(cx,cx) + 1 all.equal(data2==data) Bart -- View this message in context: http://r.789695.n4.nabble.com/Create-coun

Re: [R] Create counter variable for subsets without a loop

2010-05-18 Thread Gabor Grothendieck
Here are four solutions: data <- cbind(state.region,as.data.frame(state.x77))[,1:2] # ave data2 <- data[order(data$state.region, -data$Population), ] data2$rank <- ave(data2$Population, data2$state.region, FUN = seq_len)) # by f <- function(x) cbind(x[order(-x$Population), ], rank = 1:nrow(x)) d

Re: [R] Create counter variable for subsets without a loop

2010-05-18 Thread Bart Joosen
take a look at the by, ave, aggregate and apply functions, perhaps one suits your needs Bart -- View this message in context: http://r.789695.n4.nabble.com/Create-counter-variable-for-subsets-without-a-loop-tp2220663p2220925.html Sent from the R help mailing list archive at Nabble.com. ___