Hola, No, fÃjate que en "ref" he puesto un intervalo mÃnimo de un dÃa: el fin de año del 2001 (2001-12-31) y el año nuevo del 2002 (2002-01-01). La idea de que este intervalo sea mÃnimo tiene justamente esta idea de confirmar si el empleado estuvo contratado tanto el 31 como el 1 del siguiente año.
Si amplias mucho este intervalo como has hecho a dos años enteros (2002 y 2003) se produce el overlap. Saludos, Carlos Ortega www.qualityexcellence.es El 18 de julio de 2014, 10:17, Francisco Javier <iterado...@hotmail.com> escribió: > Hola Carlos, > > ¿No es posible trabajar con el primer script y ejemplo que me enviaste? > El motivo es que no acabo de entender el funcionamiento de este segundo > script (he cambiado algún dato), pues creo que presenta 2 inconvenientes > (por favor, corrÃgeme si me equivoco): > > > > datos <- data.frame( id=1:3, > > entra=c('2001-01-01','2002-06-01','2003-01-01'), > > sale=c('2002-01-01','2002-12-31','2004-01-01')) > > # Entiendo que ref define los puntos que ha de cruzar el individuo: > ref <- new_interval(ymd('2001-12-31'), ymd('2003-12-31')) > > logical <- mapply( > function(x,y,z) > {int_overlaps(new_interval(x,y),z)} > ,datos$entra, datos$sale, ref) > > TRUE TRUE TRUE > > El primer y el tercer individuo cruzan respectivamente el 31 dic 2001 y el > 31 dic 2003, correcto. Pero el segundo individuo NO llega a cruzar el 31 de > diciembre de 2002 (pues sale justo en esa fecha), y en cambio el vector me > devuelve ¿TRUE? > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es