Tag Archive for rownames

Preparação de uma matriz de dados biológicos

Ao prepararmos uma matriz de dados biológicos para análise multivariada temos que ter inicialmente dois cuidados: devemos fazer com que o identificador dos objetos (usualmente estações de coleta) sejam os nomes das linhas e devemos substituir NAs (células vazias) por zeros.
Normalmente os dados de abundância são submetidos a alguma transformação monotônica, como log(x+1), para tornar a distribuição normal, estabilizar a variância e fazer com que as medidas de distância trabalhem melhor.
Para a mudança dos nomes das linhas utilizamos a função rownames,  para substituição dos NAs por zeros is.na e, finalmente, para logaritimização log1p.
A seguir veremos um exemplo destas etapas iniciais de uma análise multivariada.
#dados

ST SP1 SP2 SP3
ST1 4 2
ST2 8 4 1
ST3 1 3 5
ST4
3 7


# lê os dados
dat.bio <-read.delim(“clipboard”,row.names=1)
dat.bio 

    SP1 SP2 SP3
ST1   4   2  NA
ST2   8   4   1
ST3   1   3   5
ST4  NA   3   7
# substitui NAs por 0
dat.bio[is.na(dat.bio)]<-0
dat.bio
    SP1 SP2 SP3
ST1   4   2   0
ST2   8   4   1
ST3   1   3   5
ST4   0   3   7
# logaritimização  ln(x+1)
dat.biolog <- log1p(dat.bio)
dat.biolog
          SP1      SP2       SP3
ST1 1.6094379 1.098612 0.0000000
ST2 2.1972246 1.609438 0.6931472
ST3 0.6931472 1.386294 1.7917595
ST4 0.0000000 1.386294 2.0794415


Gráfico de barras com números sobre as barras

Para fazer um gráfico de barras com a produção descarregada de diversas frotas e indicar o número de unidades produtivas sobre cada barra utilizei as funções barplot e text. O interessante é que ao criarmos um objeto com o barplot (bp <- barplot(…)) obtemos os pontos médios de cada barra. Assim podemos utilizar estes valores para posicionar corretamente as legendas sobre as barras com text. O comando par(mar=..) indica as margens do gráfico.

Copiando os dados abaixo do clipboard temos:

CAT Prod UP
Petrecho 1 17,5 9
Petrecho 2 15,2 20
Petrecho 3 10,3 500
Petrecho 4 8,4 150
Petrecho 5 20,3 900
dados <- read.delim(“clipboard”,dec=”,”,header=T)
barras <- data.frame(dados[,c(2)])
rownames(barras)<-dados[,1]
names(barras)<-c(“Prod”)
barras 

Prod
Petrecho 1 17,5
Petrecho 2 15,2
Petrecho 3 10,3
Petrecho 4 8,4
Petrecho 5 20,3
   
par(mar=c(12,6,3,2),cex.axis=1.2,cex.lab=1.4)
bp<-barplot(t(as.matrix(barras)),ylim=c(0,max(dados[,2]*1.1)),las=2,ylab=”Produção descarregada (t)”,col=”orange”)
box()
text(bp,barras[,1],dados[,3],col=”blue”,pos=3)