[R-es] programación básica

eduardo san miguel eduardosanmi en gmail.com
Mie Nov 4 12:11:55 CET 2009


Hola Javier,

Puedes probar con SQL, mediante el paquete sqldf (consultas SQL a
data.frames en R).

No me queda clara la fórmula que propones, así que te mando varios
ejemplos de consulta para un data.frame de muestra. Sobre el ejemplo
que te envío, ¿que resultado deberíamos obtener?

Un cordial saludo,

Eduardo San Miguel Martin
Consultor BI

# R-code

farm = data.frame(animal = 1482,
           inicio = c('2006-08-08', '2004-08-08','2004-08-08'),
           fin = c('2007-08-23','2005-05-01','2005-05-01'),
           control = c('2007-02-23','2004-12-21','2005-04-26'),
           idlactancias = c(4353,4351,4351),
           Cle_KilosOrdenie1 = c(11.4,11.0,11.0)
);

require(sqldf);

sqldf('
select *
from farm');

sqldf('
select animal, inicio, control,
       (julianday(control) - julianday(inicio)) dif_dias_periodo
from farm
group by animal, inicio, control');


sqldf('
select animal, inicio, control,
       Cle_KilosOrdenie1  * (julianday(control) - julianday(inicio)) kls_periodo
from farm
group by animal, inicio, control');

sqldf('
select animal,
       sum(Cle_KilosOrdenie1  * (julianday(control) -
julianday(inicio))) kls_periodo
from farm
group by animal');

sqldf('
select animal, fin,
       sum(Cle_KilosOrdenie1  * (julianday(control) -
julianday(inicio))) kls_periodo
from farm
group by animal, fin');



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