Expandir un data frame de R con tidyr

13 Ago

En alguna entrada del blog ya he tratado sobre la expansión de un conjunto de datos pero quería tener una entrada específica. Es algo que se puede programar mediante bucles (tarda una vida) o bien podemos usar la función expand del paquete tydyr. Viendo un ejemplo y los conjuntos de datos generados vais a entender el propósito de la expansión de tablas, se trata de un inicio y un fin y deseamos que se genere una secuencia de observaciones sucesivas dado ese inicio y ese fin. A modo de ejemplo ilustrativo:

library(tidyverse)

clientes <- 100 

cliente <- data.frame(id_cliente = seq(1, clientes))
cliente %>% mutate( inicio = rpois(nrow(cliente), 2),
                    fin = inicio + rpois(nrow(cliente), 4)) ->
  cliente

cliente_expand <- cliente %>% group_by(id_cliente) %>% expand(entrada=inicio:fin) %>% as_tibble()

Con este programa pasamos de un data frame con un registro por id a otro data frame con tantos registros por id como longitud tenga la secuencia entre el campo de inicio y el campo fin:

Esta función expand de rstats me está siendo especialmente útil para trabajar con horas. Saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *