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

