
Roney, boa noite! Já vi que o colega Rubem resolveu a questão. Tinha trabalhado noutra ideia, que deixo para consulta. Não é tão eficiente quanto a solução que vocês tiveram, mas é bem melhor que o código anterior. # <code r> setwd("C:/LAB/Temp/Roney"); getwd() # download.file("https://db.tt/13dT9XQI", destfile="ver2.rds", mode="wb") ver2 <- readRDS("ver2.rds") str(ver2, max=1) to <- Sys.time() RES <- NULL for(k in 2:length(ver2)){ df <- merge(ver2[[k-1]], ver2[[k]], by="name", all=T) df <- df[order(df$grupo.x, df$grupo.y),] tmp <- merge(aggregate(data=df, name~grupo.x+grupo.y, FUN="length"), aggregate(data=df, PY.x~grupo.x+grupo.y, FUN="max")) res <- data.frame(ID=k-1, G1=tmp[,1], G2=tmp[,2], n=tmp[,3], anobase=tmp[,4]) RES <- rbind(RES, res[order(res$G1, res$G2),]) } Sys.time()-to head(RES) # </code> Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]