[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