você também quer contribuir para o uso de softwares livres?
Compartilhe, COMENTE e de sugestões de novos conteúdos.

Inscreva-se e clique no botão, para receber o e-book Criando gráficos em R sem dominar a linguagem: Guia Rápido e novos conteúdos diretamente no seu e-mail.
Baixe seu e-book gratuitamente e faça parte da comunidade easy R 

BLOG easy R

O que fazer quando eu tenho valores perdidos 'NA' na matriz de dados? Problemas no gráfico de barras empilhadas.

Gráficos no R por Luis Macedo-Soares.

A Denise Tonetta deixou um comentário interessante no post do script do gráfico de barras empilhadas lá no Facebook. O que acontece se tivermos na matriz um valor NA? Para quem não sabe NA é a sigla para “not available” usada no R para identificar valores perdidos na sua planilha de dados. A questão é: se você tem um valor NA, a função barplot() não faz a soma daquele grupo de dados e a barra não aparece no gráfico, como você pode ver na primeira figura para o nível 1 da categoria M.

Como a minha matriz estava completa, eu utilizei o seguinte código para criar o valor NA e gerar o primeiro gráfico de barras empilhadas da figura abaixo:

dados2 <- dados # salvei os dados em outro objeto
dados2[1,1] <- NA # substitui o valor da primeira célula [linha, coluna] por NA
barplot(height=dados2, names.arg=colnames(dados2),
                  col=c("yellow","darkorange","red"),
                  cex.names=1.4,beside=FALSE, las=1, space=0.8, 
                  ylim=c(0,300), cex.axis=1.2, cex.lab=1.2, font.lab=2, 
                  args.legend=c(x="topleft",bty="n"), 
                  legend.text=c("Fator A","Fator B","Fator C"), 
                  ylab="Quantidade da variável y")
box()
Exemplo de imagem
Para a barra aparecer no gráfico com os outros valores, você precisa substituir o valor NA por zero, como fiz no código abaixo, gerando a segunda figura. Procurei o argumento na.rm=TRUE que é usado para tratar valores perdidos em funções como mean() e sd() que retornam a média e o desvio padrão, respectivamente, mas ele não é um parâmetro gráfico, então o R retornou um erro.

dados3 <- dados2 # novamente criei outro objeto
dados3[1,1] <- 0 # substitui o valor da primeira célula [linha, coluna] por zero
barplot(height=dados3, names.arg=colnames(dados3),
                 col=c("yellow","darkorange","red"), cex.names=1.4, beside=FALSE,     
                 las=1, space=0.8, ylim=c(0,300), cex.axis=1.2, cex.lab=1.2,    
                 font.lab=2, args.legend=c(x="topleft",bty="n"), 
                 legend.text=c("Fator A","Fator B","Fator C"),
                 ylab="Quantidade da variável y")
box()

Obrigado Denise Tonetta! 

Deixem seus comentários se tiverem sacadas como esta que vamos progredindo juntos. #acompanhadoeuvoumaislonge
Gostou? Clique Curtir e deixe um comentário!

ENTRE EM CONTATO COMIGO

Envie seus comentários e sugestões.