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.