O R é um programa livre multiplataforma para análises estatísticas que pode ser baixado em seu site ou adicionado na lista de repositórios de máquinas linux. Suas possibilidades de aplicação em diversas áreas são praticamente ilimitadas.
Neste blog postarei o resultado de minha experiência em sua utilização nas áreas de dinâmica de populações de peixes, ciência pesqueira e ecologia.
As postagens deste blog se destina, além de mim mesmo, a iniciantes no R e alunos da minha área de atuação.
Aprendi muito em livros e nas listas de discussão R-help e a R_STAT, mas ainda tenho muito pela frente. Agradeço desde já qualquer contribuição.

segunda-feira, 25 de outubro de 2010

Como remover categorias (levels) não utilizadas

Um problema que encontramos ao subdividir um conjunto de dados é que as categorias excluídas continuam aparecendo nos sumários e nos gráficos.

Para se ver livre destas deve-se utilizar a função droplevels, que foi inserida na versão 2.12.0. No exemplo abaixo crio o data.frame dados1 onde a coluna categ possui três níveis: “a”, “b” e “c”. Em seguida crio o data.frame dados2 excluindo as linhas da categoria “b”. Veja que ela ainda conta como um nível e aparece no gráfico. Com a utilização da função droplevels este problema é contornado.

categ <- rep(c("a","b","c"),c(10,10,10))
valor<-c(rnorm(10,5,2),rnorm(10,8,4),rnorm(10,12,3))
dados1<-data.frame(categ,valor)
levels(dados1$categ)
[1] "a" "b" "c"
plot(dados1)
dados2<-subset(dados1,categ!="b")
levels(dados2$categ)
[1] "a" "b" "c"
plot(dados2) 
dados3<-droplevels(subset(dados1,categ!="b"))
levels(dados3$categ)
[1] "a" "c"
plot(dados3) 

Em casos específicos pode-se utilizar:
levels(dados2$categ[,drop=T])
[1] "a" "c"

Nenhum comentário:

Postar um comentário