[R-br] aggregate
Edson Lira
edinhoestat em yahoo.com.br
Quinta Fevereiro 21 12:37:53 BRT 2013
Boa tarde a todos, tenho um bd com estas variáveis
> names(ccq)
[1] "Grupo" "EA" "EB" "EC" "ED" "EE" "EF" "EG" "EH" "EI" "EJ" "PA" "PB" "PC" "PD" "PE" "PF" "PG" "PH" "PI" "PJ" "AA"
[23] "AB" "AC" "AD" "AE" "AF" "AG" "AH" "AI" "AJ" "Nome" "Turno" "cargo" "Sexo" "te" "tc" "t_ccq" "esc" "Tipo"
Criei uma funçao:
eda<-function(x){
média<-mean(x,na.rm=T)
desvio<-sd(x,na.rm=T)
cv<-desvio/média*100
cbind(média,desvio,cv)
}
Como faço para obter estas medidas de uma única vez para todas variáveis numérias por exemplo por turno que tem 3 níveis: 1,2,Com.
Fiz no aggregate e me dar esta saída(pequena amostra)
> ag<-aggregate(. ~ Turno, data = ccq, eda)
> ag
Turno Grupo.1 Grupo.2 Grupo.3 EA.1 EA.2 EA.3 EB.1 EB.2 EB.3 EC.1 EC.2 EC.3 ED.1 ED.2 ED.3 EE.1 EE.2 EE.3 EF.1 EF.2 EF.3 EG.1 EG.2 EG.3 EH.1 EH.2 EH.3 EI.1 EI.2
1 1 1 0 0 8.0 1.4 17.8 7.83 2.31 29.51 7.8 1.7 21.3 8.48 1.20 14.17 8.3 1.7 20.0 9.13 0.97 10.60 9.00 1.21 13.40 8.43 1.62 19.19 7.6 1.5
2 2 1 0 0 8.2 1.1 13.3 9.44 0.88 9.34 8.9 1.4 15.3 8.78 0.83 9.49 8.8 1.3 14.8 8.78 1.72 19.55 8.67 1.66 19.13 9.56 0.88 9.23 8.6 1.5
3 Com 1 0 0 7.8 1.1 14.2 8.11 1.50 18.52 8.0 1.2 15.4 8.33 1.21 14.51 8.2 1.7 20.3 9.15 0.95 10.37 9.22 0.93 10.12 8.81 1.18 13.36 8.0 1.3
EI.3 EJ.1 EJ.2 EJ.3 PA.1 PA.2 PA.3 PB.1 PB.2 PB.3 PC.1 PC.2 PC.3 PD.1 PD.2 PD
Vejam que por exemplo, EA.1 EA.2 EA.3 são respectivamente a média, desvio e cv.
Como melhorar esta saída, dando nomes a EA.1, EA.2,EA.3
Talvez um loop?
[ ]'s.
Edson Lira
Estatístico
Manaus-Amazonas
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130221/058b0151/attachment.html>
Mais detalhes sobre a lista de discussão R-br