[R-es] Selección eficiente de individuos
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$SALas.Date(1997-12-31),]$ID ) t3 - intersect ( trabajadores[trabajadores$ENTas.Date(1997-01-01),]$ID , trabajadores[trabajadores$SAL==as.Date(1997-12-31),]$ID ) t4 - intersect ( trabajadores[trabajadores$ENTas.Date(1997-01-01),]$ID , trabajadores[trabajadores$SALas.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$SALas.Date(1998-12-31),]$ID ) t7 - intersect ( trabajadores[trabajadores$ENTas.Date(1998-01-01),]$ID , trabajadores[trabajadores$SAL==as.Date(1998-12-31),]$ID ) t8 - intersect ( trabajadores[trabajadores$ENTas.Date(1998-01-01),]$ID trabajadores[trabajadores$SALas.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
Re: [R-es] Selección eficiente de individuos
Simplificando (i.e., asumiendo que los días fin de año son los múltiplos de 10): # datos simulados dat - data.frame(id = letters[1:4], ini = c(1, 15, 15, 11), fin = c(11, 19, 25, 22)) fin.anno - 10 * 1:3 # resultado dat[mapply(function(x,y) ! any(fin.anno %in% x:y), dat$ini, dat$fin),] Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 17 de julio de 2014, 17:19, Francisco Javier iterado...@hotmail.com escribió: 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$SALas.Date(1997-12-31),]$ID ) t3 - intersect ( trabajadores[trabajadores$ENTas.Date(1997-01-01),]$ID , trabajadores[trabajadores$SAL==as.Date(1997-12-31),]$ID ) t4 - intersect ( trabajadores[trabajadores$ENTas.Date(1997-01-01),]$ID , trabajadores[trabajadores$SALas.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$SALas.Date(1998-12-31),]$ID ) t7 - intersect ( trabajadores[trabajadores$ENTas.Date(1998-01-01),]$ID , trabajadores[trabajadores$SAL==as.Date(1998-12-31),]$ID ) t8 - intersect ( trabajadores[trabajadores$ENTas.Date(1998-01-01),]$ID trabajadores[trabajadores$SALas.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 ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] [Grupo de Usuarios R Madrid]: Siguiente reunión el 1-julio... (Agenda disponible)...
Me pilla un poco lejos de dónde trabajo. ;) Estaría interesado en que fuera en Córdoba o Granada. Sé que en Granada hay unos cuantos eRReros entre la uni y alguna que otra empresa, y en Málaga también hay unos cuantos.. Saludos El 17/07/14 23:03, Rubén Gómez Antolí escribió: Hola: El 02/07/14 a las #4, Jose Luis Cañadas Reche escribió: [...] Ya de paso pregunto si alguien está interesado en hacer un GIL (Grupo de Interés Local) en Andalucía.. ¿En que zona tienes interés? En Almería no hay muchos eRReros pero alguno que otro estamos. Salud y Revolución. Lobo. ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es