Skip to content
Prev 11379 / 15379 Next

[R-es] Distribuir intervalo de días entre meses

Hola,
Partiendo de un data frame con 2 variables de fecha (inicio y fin):

df <- data.frame(inicio = c(as.Date("2016-01-01"),
                                      as.Date("2016-02-14")),
                        fin = c(as.Date("2016-02-01"),
                                  as.Date("2016-02-29")))

Necesitaría crear 12 nuevas columnas adicionales, una para cada mes, que
compute el número de días del intervalo que caen en cada mes. El resultado
deseado sería algo así:

inicio             fin              ene    feb    mar    abr    may    jun
   jul    ago    sep    oct    nov    dic
2016-01-01    2016-02-01  31     1       0        0       0        0      0
     0        0       0       0       0
2016-02-14    2016-02-29  0       15     0        0       0        0      0
     0        0       0       0       0

Buscando he encontrado una aproximación al problema del reparto, pero no es
válida para data frames. La detallo por si sirve de inspiración:
table(format(seq(df$inicio, df$fin, by=1), "%m"))

Muchas gracias.
Rubén