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.
Mostrando postagens com marcador clipboard. Mostrar todas as postagens
Mostrando postagens com marcador clipboard. Mostrar todas as postagens

quarta-feira, 14 de dezembro de 2011

Gráfico de círculos

Elaborei um gráfico para a representação do número relativo de observações por categoria de determinadas variáveis registradas em diferentes pontos de coleta. No exemplo abaixo, eu tenho o número de embarcações observadas por classe de comprimento total nos municípios de São Paulo (dados são fictícios).

Nesta rotina a relativização é feita por ponto de coleta (município).

Dados (fictícios)

Município 0 ˫ 6 6 ˫ 9 9 ˫ 12 12 ˫ 15 15 ˫ 18 ≥ 18
Ubatuba 37 46 7 7 0 0
Caraguatatuba 41 41 15 2 0 0
Ilhabela 50 39 9 0 0 0
São Sebastião 43 40 14 1 0 0
Bertioga 0 52 28 18 0 0
Santos/Guarujá 6 27 16 16 4 28
São Vicente 75 12 12 0 0 0
Praia Grande 60 39 0 0 0 0
Mongaguá 16 83 0 0 0 0
Itanhaém 0 85 14 0 0 0
Peruíbe 31 43 25 0 0 0
Iguape 38 60 0 0 0 0
Ilha Comprida 66 34 0 0 0 0
Cananéia 34 40 10 11 2 0
Total 497 641 150 55 6 28


# importa dados da área de transferência
dat.graf <- t(read.delim("clipboard",dec=",",row.names=1))
dat.graf

# indica o valor da variáveis que serão utilizadas
NCATY<-nrow(dat.graf)
NCATX<-ncol(dat.graf)
MARX<-10 # margem da abcissa
MARY<-5 # margem da ordenada
CIRC<-13 # tamanho máximo do círculo
COR<-"blue" # cor do círculo

# plota o gráfico
par(mar=c(MARX,MARY,2,2))
plot(c(1:NCATX),rep(0,NCATX),xlab="",ylab="",
xaxp=c(1,NCATX,NCATX-1),yaxp=c(1,NCATY+1,NCATY),
ylim=c(0,NCATY+1),xaxt="n",yaxt="n",type="n")
axis(1,at=c(1:NCATX),labels=colnames(dat.graf),las=2,cex.axis=1.5)
axis(2,at=c(1:NCATY),labels=rownames(dat.graf),las=2,cex.axis=1.5)
for (x in 1:NCATX) {
  for(y in 1:NCATY) {
    points(x,y,col=COR,pch=19,cex=dat.graf[y,x]*CIRC/sum(dat.graf[,x]))
  }
}

# caso a última linha da tabela seja uma totalização e deva ficar em destaque.
abline(v=NCATX-0.5,lty=2)

















-------------

Algumas pessoas tiveram problemas com a visualização, compreensão e inserção do símbolos matemáticos de indicação dos intervalos de classe.
6 ˫ 9, 6 |- 9, [6,9[ ou [6,9) indica um intervalo de classe que inclui o limite inferior (6) e exclui o superior (9)
No Linux Ubuntu a forma correta de indicar o símbolo "|-" (˫) é Shift+Ctrl+U 02EB e o código para ">=" (≥) é Shift+Ctrl+U 2265, , como podemos ver na figura.
Dependendo no navegador e do sistema operacional estes símbolos podem não ser visualizados corretamente no blog.
Caso os símbolos matemáticos e as acentuações não sejam corretamente importados pelo R através área de transferência (clipboard) podemos gravar a tabela de dados e importa-la como comando read.csv.
Se mesmo assim os probelmas continuarem podemos re-escrever os nomes de colunas e linhas com colnames e rownames:
colnames(dat.graf)
colnames(dat.graf)[4]<-"São Sebastião"
colnames(dat.graf)[6]<-"Santos/Guarujá"
rownames(dat.graf)
rownames(dat.graf)<-c("0 ˫ 6","6 ˫ 9","9 ˫ 12","12 ˫ 15","15 ˫ 18","≥ 18")

segunda-feira, 25 de outubro de 2010

Como importar dados da área de transferência (clipboard)

Uma forma simples de transferir dados de uma planilha (Excel, Calc, etc.) para o R é através da área de transferência (clipboard) através da seguinte função:
read.delim("clipboard",dec=",",header=T)

“clipboard” indica que os dados estão na área de transferência, dec=“,” que é utilizada a vírgula como separador decimal e header=T que a primeira linha contém títulos das colunas.

Considere que em uma planilha você tem os dados

Ct    Pt      Sexo
186  81,0   M
192  88,7   F
195  78,4   M
197  101,2 F
199  77,6  M
199  92,3  M
200  90,3  M
200  91,3  M
202  87,6  M

Selecione a área da planilha com os dados e copie (Ctrl C). No prompt do R escreva read.delim("clipboard",dec=",") e pressione Enter. Os dados estarão transferidos.

Também podemos fazer com que os dados da primeira coluna sejam importados como o nome das linhas, o que é útil em análises multivariadas. Para isto inserimos o parâmetro row.names=1

Para que os dados transferidos fiquem disponíveis devemos atribuí-los a um objeto: dados <- read.delim("clipboard",...)