Paulo,
 
só uma última dúvida, eu tenho como nomear os quartis, para que 0.25 seja Q1 e o 0.75 seja Q3? Eu coloquei no código
 
abcz = by(abc, abc$codigo, function(x) quantile(rep(x$valor, x$ponderador), prob=c(Q1=0.25, Q3=0.75))), porém ele continou
 
gerando os resultados como 0.25 e 0.75.
 
Eu usei o código que você indicou "as.data.frame(t(...))", com isso a minha variável codigo, passou a ser o rownames, como eu
 
faço para torná-la uma variável de nome codigo, pois vou precisar, depois de calculado esses quartis, juntar com o arquivo
 
de dados, por codigo. Tentei utilizar merge(abc, qrt, by.abc = "codigo", by.qrt = row.names, all.abc = TRUE), porém o resultado
 
disso, não ficou ok, pois misturou valores de um codigo com o outro.
 

               Obrigado,
 
               Carlos Mendonça.