Creacion de ranking con R
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.