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]]