Hola,

Hola a todos,
Os escribo porque no consigo finalizar el script necesario para realizar lo que a continuación planteo. Partiendo de un data frame (2 millones de casos), tengo:

> datos2
   ID      FECHA YEAR CANTIDAD
1 100 2005-08-02 2005        1
2 100 2005-10-19 2005        2
3 100 2007-02-09 2007        1
4 100 2007-10-25 2007        1
5 100 2007-10-29 2007        1
6 120 2006-05-11 2006        1
7 120 2006-08-17 2006        5
8 120 2006-10-15 2006        1
9 120 2007-04-16 2007        3
 
Y desearía las cantidades acumuladas por ID y año, a partir del primer año con registros de cada ID, obteniendo:
    ID      YEAR CANTIDAD
1 100 2005        3
2 100 2006        3  (como en el 2006 no hay datos de ID=100, el acumulado se mantiene)
3 100 2007        6
4 120 2006        7
5 120 2007        10
 
Hasta ahora sólo he conseguido llegar a esto mediante el paquete data.table:
> library(data.table)
> datos2 <- data.table(datos2)
> datos2 <- datos2[, ACUM.CANTIDAD:=cumsum(CANTIDAD), by = list(ID, YEAR)]
> datos2
    ID      FECHA YEAR CANTIDAD ACUM.CANTIDAD
1: 100 2005-08-02 2005        1             1
2: 100 2005-10-19 2005        2             3
3: 100 2007-02-09 2007        1             1
4: 100 2007-10-25 2007        1             2
5: 100 2007-10-29 2007        1             3
6: 120 2006-05-11 2006        1             1
7: 120 2006-08-17 2006        5             6
8: 120 2006-10-15 2006        1             7
9: 120 2007-04-16 2007        3             3
 
Cualquier ayuda será bienvenida. Muchísimas gracias.
 
 
 		 	   		  
	[[alternative HTML version deleted]]

