Buenas
tardes,
Tengo un
data frame denominado ?trabajadores?, que cubre desde el 1 de
enero de 1997 hasta el 30 junio de 1999, con 3 columnas: Identificador (ID), la
fecha de entrada en la empresa (ENT) y la fecha de salida (SAL). Deseo localizar
aquellos trabajadores que, durante dicho periodo, NO han llegado a pasar un 31
de diciembre y un 1 de enero seguidos (cambio de año) como asalariados de la
empresa, para lo cual hago:
## Los
que entran durante 1997 pero no llegan al 1 de enero de 1998
t1 <-
intersect ( trabajadores[trabajadores$ENT==as.Date("1997-01-01"),]$ID
,
trabajadores[trabajadores$SAL==as.Date("1997-12-31"),]$ID
)
t2 <-
intersect ( trabajadores[trabajadores$ENT==as.Date("1997-01-01"),]$ID
,
trabajadores[trabajadores$SAL<as.Date("1997-12-31"),]$ID
)
t3 <-
intersect ( trabajadores[trabajadores$ENT>as.Date("1997-01-01"),]$ID
,
trabajadores[trabajadores$SAL==as.Date("1997-12-31"),]$ID
)
t4 <-
intersect ( trabajadores[trabajadores$ENT>as.Date("1997-01-01"),]$ID
,
trabajadores[trabajadores$SAL<as.Date("1997-12-31"),]$ID
)
## Los
que entran durante 1998 pero no llegan al 1 de enero de 1999
t5 <-
intersect ( trabajadores[trabajadores$ENT==as.Date("1998-01-01"),]$ID
,
trabajadores[trabajadores$SAL==as.Date("1998-12-31"),]$ID
)
t6 <-
intersect ( trabajadores[trabajadores$ENT==as.Date("1998-01-01"),]$ID
,
trabajadores[trabajadores$SAL<as.Date("1998-12-31"),]$ID
)
t7 <-
intersect ( trabajadores[trabajadores$ENT>as.Date("1998-01-01"),]$ID
,
trabajadores[trabajadores$SAL==as.Date("1998-12-31"),]$ID
)
t8 <-
intersect ( trabajadores[trabajadores$ENT>as.Date("1998-01-01"),]$ID
trabajadores[trabajadores$SAL<as.Date("1998-12-31"),]$ID
)
localizados
<- c(t1, t2, t3, t4, t5, t6, t7, t8)
¿Existe
alguna forma más eficiente de localizar a los mismos individuos? ¡¡ MuchÃsimas gracias !!
[[alternative HTML version deleted]]