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]]
_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es