Hola, Os planteo una situación a ver si se os ocurre un enfoque que me permita solucionarla. Partiendo de un data frame con las siguientes variables: mes, cliente, facturacion. Tal que así:
df <- data.frame(mes = c(1,1,1,1,2,2,2,2,3,3,3), cliente = c('a', 'b', 'c', 'd', 'b', 'c', 'd', 'e', 'b', 'd', 'e'), fact = c(100, 110, 120, 100, 90, 80, 110, 100, 90, 70, 120)) mes cliente fact 1 a 100 1 b 110 1 c 120 1 d 100 2 b 90 2 c 80 2 d 110 2 e 100 3 b 90 3 d 70 3 e 120 Con un simple group_by() y summarise() obtengo: df <- df %>% group_by(mes) %>% summarise(sumFact = sum(fact)) mes sumFact 1 430 2 380 3 280 Y ahora viene lo complicado (para mí), quiero añadir dos nuevas columnas: win y loss. win debe sumar la facturacion de aquellos clientes que no existían en el mes n-1. Loss debe sumar la facturación en el mes n-1 de los clientes que ya no están en el mes n (y así sucesivamente). De forma que obtengamos el data frame final: mes sumFact win loss 1 430 NA NA 2 380 100 100 3 280 0 80 En el mes 2, win es la suma de la facturación del cliente e, que no estaba en el mes 1 y loss es la suma de la facturación del cliente a, que estaba en el mes 1 pero ya no en el 2. En el mes 3, win es 0 porque no hay ningún cliente que no existiense en n-1 y loss es la suma de la facturación del cliente c, que estaba en el mes 2 pero no en el 3. Espero haber explicado el caso con suficiente claridad y que podáis ayudarme. Muchas gracias! [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es