Calcular porcentajes por grupos con dplyr

A la hora de sumarizar datos con dplyr podemos calcular porcentajes dentro de grupos o subgrupos con transmute. La sintaxis es sencilla, pero tiene la peculiaridad de que solo obtendremos como salida lo que indiquemos en transmute. Mejor lo entendéis en un ejemplo: Conjunto de datos aleatorio de ejemplo: library(dplyr) observaciones <- 100 grupo_1 <- rpois(observaciones, 0.5) grupo_2 <- rpois(observaciones, 1) df <- cbind.data.frame(grupo_1, grupo_2) %>% mutate(id_cliente = n()) Sumarizamos por grupos: df %>% group_by(grupo_1, grupo_2) %>% summarise(clientes = n()) Contamos clientes y calculamos el porcentaje sobre el total: ...

26 de octubre de 2020 · rvaquerizo

Datos agrupados en R con dplyr

Entrada rápida para ilustrar cómo crear un campo autonumérico por un factor; es una duda que me plantean: tienen datos de clientes y fechas y necesitan crear un autonumérico en R que les diga el número de orden de los eventos de una fecha. Algo parecido a lo que hacemos con el retain de SAS. Vamos a ilustrar la tarea con un ejemplo: library(dplyr) library(lubridate) clientes <- 100 id_cliente <- rpois(clientes, 10) fecha <- rpois(clientes, today() - rpois(clientes, 5)) eventos <- cbind.data.frame(id_cliente, fecha) eventos$fecha <- as.Date(eventos$fecha, origin = "1970-01-01") eventos <- eventos %>% arrange(id_cliente, fecha) 100 clientes que aparecen una o $n$ veces con fechas asociadas; el primer paso que sugiero hacer es eliminar duplicados con dplyr: ...

26 de marzo de 2020 · rvaquerizo

Data management con dplyr

Dos años con pandas y scikit-learn y ahora vuelvo a R. Y in mi regreso me propuse comenzar a trabajar con dplyr y mi productividad se está incrementando exponencialmente; creo que dplyr es LA HERRAMIENTA para el manejo de data.frames con R, ni me imagino cómo puede funcionar sparklyr… Para aquellos que estéis iniciando vuestra andadura con R o para los que no estéis acostumbrados a dplyr, he hecho una recopilación de las tareas más habituales que hago con esta librería. Se pueden resumir in: ...

22 de noviembre de 2018 · rvaquerizo

Pasando de SAS a R. Primer y ultimo elemento de un campo agrupado de un data frame

Las personas que están acostumbradas a trabajar con SAS emplean mucho los elementos FIRST., LAST. y BY; en el blog hay ejemplos al respecto. En R podemos hacer este trabajo con la librería “estrella” dplyr de un modo relativamente sencillo. A continuación se presenta un ejemplo para entender mejor cómo funciona; creamos un conjunto de datos aleatorio: id <- rpois(100, 20) mes <- rpois(100, 3) + 1 importe <- abs(rnorm(100)) * 100 df <- data.frame(id, mes, importe) Tenemos un identificador, una variable mes y un importe y deseamos obtener el menor importe por mes. El primer paso a realizar es ordenar el data frame de R por ese identificador, el mes y el importe en orden descendente: ...

19 de octubre de 2017 · rvaquerizo