[[analises:tax:descricoes]]

Descrições Taxonômicas com Rmarkdown

Este tutorial mostra como gerar descrições taxonômicas dinamicamente usando o rmarkdown no RStudio. O exemplo gera um documento (que pode ser um word .docx para posterior edição) que incluirá para cada espécie:

  • uma descrição morfológica segundo um modelo que você deve informar;
  • a lista de material examinado no formato da PhytoTaxa;
  • um figura fenológica de cada espécie mostrando a densidade de coletas com flores e frutos em cada mês do ano.
  • tratamento.docx - exemplo de docx gerado dessa forma
  • Dados morfológicos brutos - data.frame onde linhas são amostras e colunas são as variáveis morfológicas, e os valores das células podem ser números (separados por ';') ou categorias (idem). A exemplo do que exportado pela base de dados do laboratório; precisa ter obviamente a coluna com o nome das espécies;
  • Dados sobre as exsicatas - para construção da lista de material examinado. Precisa ter as seguintes colunas (com esses nomes): c("COLLECTOR", "NUMBER", "COLLDD", "COLLMM", "COLLYY", "ADDCOLL", "COUNTRY", "MINORAREA", "MAJORAREA", "GAZETTEER_COMPLETA", "LATITUDE", "LONGITUDE", "ALTITUDE", "HERBARIA") alem da coluna com o nome da especie.
  • Para a figura de fenologia também precisa ter a coluna FERTILIDADE (padrão wiki) - vai gerar apenas para flores e frutos
  • formatodescricao.csv - uma tabela, com este exemplo, que especifica como as variáveis devem ser concatenadas na descrição. Essa tabela deve ter as seguintes colunas:
    • PREFIXO = um texto padrao que vem antes do valor da variável (pode ser vazio)
    • NOMECOLUNA = o nome da variavel/coluna (obrigatorio)
    • SUFIXO = um texto padrao que ira depois do valor da variavel (INCLUIR AQUI A UNIDADE DE MEDIDA PARA VARIAVEIS QUANTITATIVAS) - pode ficar vazio
    • ORDEM = um indice numerico para a ordem que as variaveis devem entrar na descricao (obrigatorio)
    • FORMATO_QUANTITATIVO = qual o formato que voce quer as variaveis numericas. nessa coluna os valores precisam ser:
      • rg = range ou amplitude de variação (para apenas minimo e maximo)
      • msd = média e desvio padrão
      • rgmds = a combinação dos dois anteriores
    • CAIXA = qual a caixa para variaveis categoricas, podendo ser:
      • alta = vai escrever a variacao em caixa alta
      • baixa = vai escrever a variacao em caixa baixa
      • primeira = vai escrever a variacao com a primeira letra em caixa alta (util para a primeira variavel, tipo Habito)
    • INCLUIN = tanto para variaveis numéricas quanto categóricas se deve incluir o N amostral da espécie para cada variavel (valores 1 ou 0 para sim e não respectivamente)
  • funcoesparadescricoes.r - as funções contidas neste arquivo do R, que são as funções que geram as descrições e a lista
  1. Se você não sabe o que é um rmarkdown, melhor entender isso antes - Relatórios dinâmicos com R Markdown e tem coisas que precisam ser instaladas no seu computador além do RStudio
  2. tratamento.rmd - arquivo de rmarkdown (rmd) que gera a descrição e que tem o seguinte código:
---
title: "Tratamento Taxonômico"
output:
  word_document:
    keep_md: yes
---
 
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
#le as funcoes necessarias
source("funcoesparadescricoes.R")
```
 
```{r echo=FALSE, results='asis', dpi=300, fig.width=3,fig.height=1}
 
#define um template (modelo) para a descricao de cada especie (cada %s e uma variavel dinamicamente gerado abaixo, que preenche este modelo) (isso e necessario para poder colocar tudo num unico arquivo)
templatedaespecie ="## %s
%s
 
###Material examinado: 
%s
 
###Fenologia:
 
" 
linetemplate = "
 
------
 
"
 
#importa o seus dados para o R (neste caso esta tudo dentro do mesmo arquivo)
specs = read.table("formularioMestradoFINAL.csv",sep="\t",as.is=T,header=T,na.strings = c("NA",""))
 
#importa o formato que voce definiu para a sua descricao (voce pode ter uma versao em portugues e outra em ingles para este arquivo)
oformato = read.table(file='formatodescricao.csv',sep="\t",header=T,as.is=T,na.strings = c("","NA"))
 
#pega uma lista com os nomes das especies para incluir na descricao
spps = unique(specs$NOME)
spps = spps[!is.na(spps)]
 
#para cada especie, filtra os dados e gera a sua descricao, lista de amostras e figura fenologica
for (i in 1:length(spps)) {
  #seleciona os dados para a especie
  dados = specs[specs$NOME==spps[i] & !is.na(specs$NOME),]
 
  #gera a descricao
  descricao = geradescricao(dados,oformato,sepcateg=", ",categ2=' ou ')
 
  #gera a lista de material no formato PhytoTaxa
  matexam = listafitotaxa(dados,lang='pt_',herbariosexaminados = c("INPA","MO","RB"), markdown = T)
 
  #imprime no arquivo essas informacoes
  cat(sprintf(templatedaespecie, spps[i], descricao, matexam))
 
  #resume os dados fenologicos para especie (note que a funcao fenologia simplifica tudo para flor e fruto, mas voce pode modifica-la se quiser plotar outras categorias)
  tb = fenologia(dados)
 
  #plota uma figura da distribuicao das coletas com flores e frutos nos meses do ano
  cores = c("black","white","red","yellow","green","blue")
  layout(matrix(c(1,1,1,1,1,2),nrow=1,ncol=6))
  par(mar=c(2,2,1,0),mgp=c(1.2,0.3,0),tck=-0.01,cex.axis=0.7,cex.lab=0.8)
  bt = barplot(as.matrix(tb),beside=F,col=cores,axes=F,axisnames=F, ylab='N amostras')
  axis(side=1,at=bt,labels=colnames(tb),las=2)
  axis(side=2,las=2)
  par(mar=c(2,0,1,1))
  plot.new()
  legend("center",legend=rownames(tb),pt.bg=cores,pt.cex=1.5,bty='n',pch=22,ncol=1,cex=0.8)
  cat(sprintf(linetemplate))
}
```
  • analises/tax/descricoes.txt
  • Última modificação: 21/09/2017 18:09
  • por labotam_admin