Creacion de ranking con R

Captura de pantalla 2015-12-20 a las 18.23.04

Hasta la fecha si necesitaba crear un ranking o un orden con R realizaba la tarea del siguiente modo:

nombres <-c(«grupo_1″,»grupo_2») grupo <-sample( nombres, 10, replace=TRUE, prob=c( 0.5, 0.5) ) dataset <- data.frame(grupo) dataset$importes <- runif(10,100,30000)

#Creación del ranking de las variables agrupadas dataset ranking = ave(datasetimportes,dataset$grupo, FUN= function(x) rank(x, ties.method = «first»))

Es una agrupación de factores a la que asignamos el orden con rank, con ties.method=»first» esta agrupación se lleva a cabo desde el primer nivel del factor. El resultado se puede comprobar haciendo:

library(reshape) dataset <-sort_df(dataset,vars=c(‘grupo’,’importes’))

Otra solución posible la tenemos con plyr:

library(plyr) dataset <- ddply(dataset,.(grupo), transform, ranking2 = (seq_along(importes)))

Si nuestra agrupación tiene más de una variable podemos hacer:

dataset$grupo2 <- rpois(10,1) dataset <- ddply(dataset,.(grupo,grupo2), transform, ranking3 = (seq_along(importes)))

Imagino que en alguna ocasión os habéis encontrado con este problema, pues ya conocéis dos formas de solucionarlo. Saludos.