[R-es] Añadir nuevas filas en un data table

Francisco Javier iterador10 en hotmail.com
Lun Oct 20 20:16:15 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 según el identificador de sujeto. Además, quisiera hacerlo sin 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        end1:  1 2005-02-27 2006-04-20    24 2007-05-152:  1 2005-02-27 2007-02-19    24 2007-05-153:  8 2006-07-17 2008-01-15    15 2008-02-054:  8 2006-07-17 2008-01-29    15 2008-02-055: 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 31’s de diciembre hayan comprendidos entre sus respectivas variables start y end:     id      start       dreg valor        end1:   1 2005-02-27 2005-12-31    24 2007-05-152:   1 2005-02-27 2006-04-20    24 2007-05-153:   1 2005-02-27 2006-12-31    24 2007-05-154:   1 2005-02-27 2007-02-19    24 2007-05-155:   8 2006-07-17 2006-12-31    15 2008-02-056:   8 2006-07-17 2007-12-31    15 2008-02-057:   8 2006-07-17 2008-01-15    15 2008-02-058:   8 2006-07-17 2008-01-29    15 2008-02-059:  17 2005-05-30 2005-12-31    32 2007-12-3110: 17 2005-05-30 2006-02-05    32 2007-12-3111: 17 2005-05-30 2006-12-31    32 2007-12-31 Los nuevos valores de la variable dreg se obtendrían aproximadamente como:dreg = as.Date(paste0(drang[1L]:(drang[2L] - 1), '-12-31')), donde drang me da el máximo y mínimo valor de año (no sé si con un bucle?) para cada individuo (según start y end) . Muchas gracias! 		 	   		  
	[[alternative HTML version deleted]]



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