[R-es] Añadir nuevas filas en un data table
Francisco Javier
iterador10 en hotmail.com
Lun Oct 20 20:17:56 CEST 2014
Buenas tardes a todo el mundo,
El motivo de que me dirija al foro es que no sé
cómo añadir unas determinadas filas en un data table de una forma eficaz y
según el identificador de sujeto. Además, quisiera hacerlo sin tener que
recurrir a ningún paquete de R adicional del tipo plyr, dplyr, etc. (no sé si
esto es posible). EJEMPLO:
require(data.table)
DT <- data.table(
id = rep(c(1,8,17),c(2,2,1)),
start =
as.Date(rep(c('2005-02-27','2006-07-17','2005-05-30'),c(2,2,1))),
dreg =
as.Date(c('2006-04-20','2007-02-19','2008-01-15','2008-01-29','2006-02-05')),
valor = rep(c(24,15,32),c(2,2,1)),
end = as.Date(rep(c('2007-05-15','2008-02-05','2007-12-31'),c(2,2,1)))
)
id
start dreg valor end
1: 1 2005-02-27 2006-04-20 24 2007-05-15
2: 1 2005-02-27 2007-02-19 24 2007-05-15
3: 8 2006-07-17 2008-01-15 15 2008-02-05
4: 8 2006-07-17 2008-01-29 15 2008-02-05
5:
17 2005-05-30 2006-02-05 32 2007-12-31
Mi objetivo es crear un Nuevo data table tal que en
cada “id” se añadan tantas filas como días de fin de año tengan comprendidos
entre sus respectivas variables start y end:
id start dreg valor end
1: 1
2005-02-27 2005-12-31 24 2007-05-15
2: 1
2005-02-27 2006-04-20 24 2007-05-15
3: 1
2005-02-27 2006-12-31 24 2007-05-15
4: 1
2005-02-27 2007-02-19 24 2007-05-15
5: 8
2006-07-17 2006-12-31 15 2008-02-05
6: 8
2006-07-17 2007-12-31 15 2008-02-05
7: 8
2006-07-17 2008-01-15 15 2008-02-05
8:
8
2006-07-17 2008-01-29 15 2008-02-05
9:
17 2005-05-30 2005-12-31 32 2007-12-31
10:
17 2005-05-30 2006-02-05 32 2007-12-31
11:
17 2005-05-30 2006-12-31 32 2007-12-31
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es