[R-es] programación básica

Javier Marcuzzi javiermarcuzzi en me.com
Mar Nov 3 18:42:31 CET 2009


Trataré de explicar de otra forma

Supongamos que hoy es 1º de enero y hacemos el análisis

Tengo por un lado el número de animal, 1,2,3,4
A cada animal le corresponden fechas de inicio, por ejemplo el animal  
1 tiene dos fechas de inicio 1º de enero y 1º de diciembre.

Cada animal puede o no tener fecha de final, por ejemplo el animal 1  
tiene fecha de final el 1º de noviembre, pero aún no tiene fecha de  
final cuándo la fecha de inicio es 1º de diciembre.

Luego de la fecha de inicio 1º de enero vienen las fechas de control y  
sus valores, 3º marzo 45, 4º de abril 30, 3º septiembre 30.

Entonces en un data.frame tengo las columnas animal, fecha de inicio,  
fecha de final, fecha de control, control.

La fórmula del cálculo es días entre la fecha de inicio a fecha del  
primer control por el valor del control, luego entre a diferencias de  
días entre los controles, en el ejemplo entre el 3º de marzo y 4º de  
abril, luego entre 4º de abril y 3º septiembre, y a cada diferencia la  
multiplico por el promedio de sus valores (45 + 30)/2 para el primer  
caso. Al final es desde la última fecha de control hasta la fecha de  
final, o desde el último control hasta el día de análisis (1º de enero).

Por lo que dentro del data.frame tengo que detectar para cada animal  
la diferencia entre la fecha de inicio y la fecha de control, las  
diferencias de días entre las fechas de controles sucesivas, y  
detectar la fecha de final, para luego realizar los cálculos de  
acuerdo a las fechas.

Si lo tendría en una planilla de cálculo hacía (A4-C4)*B4+(E4- 
C4)*((B4+D4)/2)+ +++++

Pero el número de columnas depende y es distinto para cada animal, y  
los datos no están en columnas, están de esta forma

  animal     inicio        fin    control idlactancias  
Cle_KilosOrdenie1       DL
1    1482 2006-08-08 2007-08-23 2007-02-23         4353               
11.4 199 days
2    1482 2004-08-08 2005-05-01 2004-12-21         4351               
11.0 135 days
3    1482 2004-08-08 2005-05-01 2005-04-26         4351               
11.0 261 days



Más información sobre la lista de distribución R-help-es