Muchas gracias a todos, copio y pego el código R con la solución que adopte para que quede de archivo por si alguien lo necesita. No se si es la mejor solución, pero es la primera que probé y para mis requerimientos funciono. Javier Marcuzzi #######################################################33 # Descricion de los datos (en orden de columnas) # 5 Personas que realizan una actividad, # por cada vez que se realiza la actividad se la numera # cada actividad numerada es realizada a x dias desde # la columna dias2 es generada para no tener blancos (vacíos) persona<-c(1,1,1,1,1,2,2,2,2,2,3,3,3,4,5,5) numeracion <-c(1,2,3,4,5,1,2,3,4,5,1,2,3,1,1,2) dias <-c(1,3,4,6,9,2,4,6,7,9,2,5,8,3,5,8) dias2 <- c(1:length(dias)) datos <- data.frame(persona, numeracion, dias, dias2) datos # Modificación: # agrego (a mano) como debería tener el resultado # el valor maximo para cada persona vale NA # elimino el primer valor y todos se correrían una posición # datos$dias2[datos$dias2 < max(datos$dias2)] <- datos$dias2[-1] # datos$dias2[datos$dias2 == max(datos$dias2)] <- NA # quedaría de esta forma (con lo que no logre de mi parte) datos_a_mano<-c(3,4,6, 9,NA,4,6,7,9,NA, 5, 8,NA, 3,8, NA ) datos_a_mano_df <-data.frame(persona, numeracion, dias, dias2, datos_a_mano) datos_a_mano_df #entonces podría calcular la diferencia de tiempo como # (los días2 fueron secuencia, porque arriba le escribo) datos_a_mano-datos$dias # descripción de lo que debería realizar # observar la columna dias2 # cambia el primer valor y los ultimos (15 y 16) datos$dias2[datos$dias2 < max(datos$dias2)] <- datos$dias2[-1] datos$dias2[datos$dias2 == max(datos$dias2)] <- NA datos ############################## Respuesta de Jorge # # # Solucuón a mi problema # ########################################################## res <- with(datos, tapply(dias, persona, function(x){ if(length(x) > 1) res <- c(x[-1], NA) # borrar la primera observacion y hacer la ultima NA else res <- x # que hacer cuando hay una sola observacion res })) datos$loquenecesitabas <- do.call(c, res) datos # Muchas gracias por los aportes de todos [[alternative HTML version deleted]]