Buenas, si tienes la fecha de nacimiento una salida sencilla para salir 
del paso es concatenar el ID con el año de nacimiento.

Saludos

Fernando Macedo

El 25/01/16 a las 14:11, Ruben Bermad escribió:
> Hola a todos,
> Quer�a preguntar si alguno sabe como puedo identificar registros con un mismo 
> ID en el tiempo, pero que hacer referencia a objetos o individuos diferentes.
> En mi caso en particular estoy estudiando un animal que tiene una vida media 
> cercana 2 a�os, y tengo una serie longitudinal de 25 a�os. El problema es que 
> durante el muestreo en algunos casos durante la recoleccion de los datos, se 
> repitieron los nombres de los individuos porque se asumen que si ha pasado 10 
> a�os no puede ser el mismo individuo. Y el problema que yo tengo es que no se 
> como detectar de manera autom�tica este tipo de errores.
> Hab�a pensado era en registrar la primera aparici�n de cada nombre (e.g 
> indiv_1, y ver el tiempo que ha pasado en comparaci�n con el resto de 
> registros para ese mismo individuo, y en el caso que fuera superior (por 
> ejemplo a 36 meses para estar totalmente seguros), que ese individuo que 
> hab�a sido registrado como "indiv_1" sea renombrado (e.g. indiv_150), y 
> cambiar todos los siguientes registros de indiv_1 a indiv_150.
> Esto parece sencillo, pero lo complicado al revisar todos los casos nombrados 
> ahora como indiv_150 ya que es posible que el nombre indiv_1 haya sido usado 
> para varios individuos diferentes a lo largo de la serie (e.g. en el a�o 1, 
> 10 y 20). Entonces lo que hab�a pensado es hacer un bucle para cada 
> individuo, pero no consigo que cada vez que cambia el nombre de un individuo 
> (e.g. en el a�o 10) capture la nueva fecha para determinar si los siguientes 
> nombres hacen referencia al mismo individuo u a otro muy posterior en el 
> tiempo (e.g. a�o 20).
> Esta pregunta la pregunte hace tiempo en 
> stackoverflowhttp://stackoverflow.com/questions/32310520/identify-objects-with-repeated-measures-and-with-the-same-id-between-years,
>  pero no obtuve una respuesta que solucionara el problema, y los posteriores 
> intentos que he estado haciendo tampoco han sido muy buenos que se digan (os 
> lo copio al final del mensaje).
> Por ello os quer�a preguntar si alguno sabe como puedo ir registrando y 
> cambiando los IDs a lo largo del tiempo.
> Muchas gracias por adelantado, Un cordial saludo, Rub�n
> Codigo usadodatabase es la base de datos con la serie temporalID_original es 
> el identificado original que tiene cada individuoMonth_Capt es la variable 
> que me indica en que momento fue capturado cada individuo y por tanto si es 
> posible o no que el individuo sea el mismo a lo largo del tiempo.
> newID <-sapply(unique(database$ID_original), function(x) 
> c(0,cumsum(diff(database$Month_Capt[database$ID_original==x]))%%48))names(newID)<-(unique(database$ID_original))
> new_df<-data.frame(database$ID_original,database$Month_Capt,IDcond=NA,new_ID=NA)for(i
>  in unique(database$ID_original)){  
> new_df[new_df[,1]==i,3]<-newID[[which(unique(database$ID_original)==i)]]}ltrs<-c(LETTERS,apply(combn(LETTERS,2,simplify
>  = T),2,function(x) paste(x,sep = "",collapse = "")))
> letterwrap <- function(n, depth = 1) {  args <- lapply(1:depth, FUN = 
> function(x) return(LETTERS))  x <- do.call(expand.grid, args = list(args, 
> stringsAsFactors = F))  x <- x[, rev(names(x)), drop = F]  x <- 
> do.call(paste0, x)  if (n <= length(x)) return(x[1:n])  return(c(x, 
> letterwrap(n - length(x), depth = depth + 1)))}
> ltrs <- letterwrap(nrow(database)) # Create as many letters as unique IDs
>
> ltrn<-0for(i in 1:nrow(new_df)){  if(new_df[i,3]==0) 
> {ltrn<-ltrn+1;new_df[i,4]<-ltrs[ltrn]}  else 
> {ind<-which(new_df[,1]==new_df[i,1])        ind<-ind[ind<i]        
> new_df[i,4]<-tail(new_df[ind,4],1)}}
>                                       
>       [[alternative HTML version deleted]]
>
>
>
> _______________________________________________
> R-help-es mailing list
> [email protected]
> https://stat.ethz.ch/mailman/listinfo/r-help-es


        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a