
Como eu tentei explicar na mensagem anterior, voce precisa pegar o data.frame "entra" e agrupar todas as observacoes por codigo (use aggregate) e soh depois disso determine "pond". (seu codigo nao eh reproduzivel - a variavel qtd nao existe... experimente com o conjunto de dados disponivel no link q vc passou anteriormente) Use algo como (eu nao espero que o codigo abaixo esteja completamente correto - na verdade, eu prevejo que os resultados estarao incorretos, pois vc precisa ver como os dados de anos/meses diferentes devem ser combinados): entra = read.csv2("~/Downloads/Arquivo 1.csv", dec = ",", stringsAsFactors=FALSE) entra$peso = as.numeric(gsub("\\,", "\\.", entra$peso)) combinado = with(entra, aggregate(list(peso=peso, val=val), by=list(codigo=codigo), sum)) combinado$pond = combinado$val/combinado$peso tmp = combinado[, c('codigo', 'pond', 'val')] ## aqui executar o do.call(rbind, lapply.....) b