Olivier Nuñez
Cancer Epidemiology Unit
National Center of Epidemiology (Pab, 12)
Instituto de Salud Carlos III
Monforte de Lemos 5
28029 Madrid
Phone: +(34) 91 822 2859
Fax: +(34) 91 387 7815
e-mail: onunez en isciii.es
> Hola,
>
> También es muy buena la solución.
>
> Acabo de caer en la cuenta de que tu solución como la de Olivier no
> contempla el caso de que haya un salto para un determinado (o vaya para
> varios) IDs de varios años.
> En ese caso, tienes que crear los años faltantes para poder luego rellenar
> el acumulado. Puedes a partir del primer "todos" reconstruirlo sin "sqldf"
> y luego seguir con la solución que has propuesto...
>
> Un ejemplo de ese conjunto serÃa este:
>
> 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 *2010* 3
>
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
>
>
>
> 2014-03-12 12:58 GMT+01:00 <rvaquerizo en analisisydecision.es>:
>
>> Por si tienes especial interés en utilizar sqldf:
>>
>> todos <- sqldf(
>> "select distinct a.ID,b.YEAR
>> from dt a , dt b;")
>>
>> suma <- sqldf(
>> "select ID,YEAR,sum(CANTIDAD) as CANTIDAD
>> from dt
>> group by ID,YEAR;")
>>
>> todos <- sqldf(
>> "select a.ID,a.YEAR, CANTIDAD
>> from todos a left join suma b
>> on a.ID = b.ID and a.YEAR = b.YEAR
>> group by a.ID,a.YEAR;")
>>
>> todos$CANTIDAD = ifelse(is.na(todos$CANTIDAD),0,todos$CANTIDAD)
>> todos$ACUM = cumsum(todos$CANTIDAD)
>>
>> La suma acumulada también la podemos hacer con sqldf, pero nos metemos en
>> un fregado considerable. Por cierto, mira que es cabezota sqldf con los
>> valores nulos... Saludos.
>>
>>
>> Raúl Vaquerizo Romero
>> www.analisisydecision.es
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
--
____________________________________
Olivier G. Nuñez
Email: onunez en unex.es
http://kolmogorov.unex.es/~onunez
Tel : +34 663 03 69 09
Departamento de Matemáticas
Universidad de Extremadura