Hola Javier, con dplyr + tidyr puedes probar una alternativa distinta sin usar min(): library(dplyr) library(tidyr) # 1) Creamos una columna con la informacion de los jugadores, # Como es un jugador por fila, hacemos 1:nrow. step1 <- dat %>% mutate(player = 1:nrow(dat)) #2) Convertimos las columnas de tiempo (uno, dos, tres, ...) en dos columnas, mes y numero de juegos. (Ojo, asumimos que en los datos las columnas estan ordenadas como en el ejemplo, es decir uno, dos, tres y no tres, uno, dos) step2 <- gather(step1, month, games, -player) #y 3) Filtramos los meses con NA y por cada jugador nos quedamos con el primer dato: step3 <- step2 %>% filter(!is.na(games)) %>% group_by(player) %>% slice(1) step3 Saludos!! Adolfo. [[alternative HTML version deleted]]