Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2010:alunos:trabalho_final:marcel.vaz:ag.code

Código da função

####################
### ANOVA GRAPHS ###
####################
anova.graph=function(dados){
      medias=aggregate(dados[,4],list(dados[,2],dados[,3]),mean) # crio tabela com a média dos tratamentos
      names(medias)=c("A","B","media")
      medias[,1]=c("A-","A+","A-","A+")
      sem.int=medias[1,3]+medias[2,3]+medias[3,3]-2*medias[1,3] # valor esperado para o tratamento AB caso não houvesse interação
      ctrl=subset(dados,A<1&B<1)[,4] # separo os dados nos grupos de tratamentos
      tratA=subset(dados,A>0&B<1)[,4]
      tratB=subset(dados,A<1&B>0)[,4]
      tratAB=subset(dados,A>0&B>0)[,4]
      ### Barra de erros por meio de bootstrap
      nb=length(unique(dados[,1])) # calculo o número de amostras por tratamento
      b.c=mean(ctrl) 
      for(i in 1:999){
          b.c[i+1]=mean(sample(ctrl,nb,replace=T))
          }
      b.a=mean(tratA)
      for(i in 1:999){
          b.a[i+1]=mean(sample(tratA,nb,replace=T))
          }
      b.b=mean(tratB)
      for(i in 1:999){
          b.b[i+1]=mean(sample(tratB,nb,replace=T))
          }
      b.ab=mean(tratAB)
      for(i in 1:999){
          b.ab[i+1]=mean(sample(tratAB,nb,replace=T))
          }
      ### GRÁFICO ###
      x11() # abre janela do gráfico
      vM=c(sem.int,sort(b.c)[950],sort(b.a)[950],sort(b.b)[950],sort(b.ab)[950]) # valor máximo possível para este gráfico
      vm=c(sem.int,sort(b.c)[51],sort(b.a)[51],sort(b.b)[51],sort(b.ab)[51]) # idem para o valor mínimo
      stripchart(media~A,data=subset(medias,B<1),
                 vertical=T,
                 pch=16,
                 xlim=c(0.5,2.5),
                 ylim=c(min(vm),max(vM)),
                )
      points(c(.95,1.95),c(medias[3,3],medias[4,3]),col=2,pch=16)
      points(1.95,sem.int,col=3,pch="*",cex=1.5)
      segments(1,medias[1,3],2,medias[2,3])
      segments(.95,medias[3,3],1.95,medias[4,3],col=2)
      segments(.95,medias[3,3],1.95,sem.int,lty=2,col=3)
      legend(2.1,max(vM),c("B-","B+","esp. \ns/ int."),col=1:3,lty=c(1,1,2),bty="n")
      arrows(1,medias[1,3],1,sort(b.c)[51],length=.1,angle=90) # barras do controle
      arrows(1,medias[1,3],1,sort(b.c)[950],length=.07,angle=90)
      arrows(2,medias[2,3],2,sort(b.a)[51],length=.1,angle=90) # idem para tratA
      arrows(2,medias[2,3],2,sort(b.a)[950],length=.07,angle=90)
      arrows(.95,medias[3,3],.95,sort(b.b)[51],length=.1,angle=90,col=2) # idem para tratB
      arrows(.95,medias[3,3],.95,sort(b.b)[950],length=.07,angle=90,col=2)
      arrows(1.95,medias[4,3],1.95,sort(b.ab)[51],length=.1,angle=90,col=2) # idem para tratAB
      arrows(1.95,medias[4,3],1.95,sort(b.ab)[950],length=.07,angle=90,col=2)
      } # fecha função
      
05_curso_antigo/r2010/alunos/trabalho_final/marcel.vaz/ag.code.txt · Última modificação: 2020/08/12 06:04 (edição externa)