En primer lugar, muchas gracias Carlos por la rápida y elegante respuesta. La 
he aplicado a mi base de datos, y rápidamente he obtenido "casi" el mismo 
resultado que obtenía de forma rudimentaria. Digo "casi" porque hay una pequeña 
diferencia de valor. Me ha faltado decir (me disculpo) que también hay que 
seleccionar a las personas que entran el 31 de diciembre en caso de que éstas 
no llegan a permanecer como mínimo hasta el 1 de enero que tiene lugar 1 año y 
un día después.Adaptando este hecho a tu ejemplo de resolución (he cambiado a 
20 el valor de "ini" del individuo "d"): # Datos simuladosdat <- data.frame(id 
= letters[1:4], ini = c(1, 15, 15, 20), fin = c(11, 19, 25, 22))fin.anno <- 10 
* 1:3 # Resultado que retorna:dat[mapply(function(x,y) ! any(fin.anno %in% 
x:y), dat$ini, dat$fin),]      id ini fin2  b  15  19 Sin embargo, el último 
caso tampoco sería válido, pues reúne las dos condiciones comentadas: a) Ha 
entrado justo en un número del vector "fin.anno" y  b) Su dato del vector "fin" 
es 22, es decir, no llega a superar el siguiente valor del vector "fin.anno" 
(en este caso sería 30): # Resultado que esperaría:    id ini fin2  b  15  194  
d  20  22 No sé si me explico, y muchas 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

Responder a