+ - 0:00:00
Notes for current slide
Notes for next slide

Meu nome é Ricardo de Oliveira Perdiz. Sou um biólogo com mestrado e doutorado em botânica, minha linha de pesquisa é com a evolução e sistemática da flora Neotropical, em especial a família do palo santo, mirra, breus, e amesclas, conhecida pelo nome científico Burseraceae. Também me dedico à criação de ferramentas para facilitar a análise de dados taxonômicos e produção de monografias taxonômicas.

Elaboração de mapas de distribuição de espécies em R

Comandos básicos para você preparar seu próprio mapa

Dr. Ricardo Perdiz | 21--22 Out 2021 | Dia 01

COVID19
1 / 44

Meu nome é Ricardo de Oliveira Perdiz. Sou um biólogo com mestrado e doutorado em botânica, minha linha de pesquisa é com a evolução e sistemática da flora Neotropical, em especial a família do palo santo, mirra, breus, e amesclas, conhecida pelo nome científico Burseraceae. Também me dedico à criação de ferramentas para facilitar a análise de dados taxonômicos e produção de monografias taxonômicas.

COVID19

mapa-R

Sumário de hoje

Introdução básica ao R

3 / 44
COVID19

mapa-R

Sumário de hoje

Introdução básica ao R

Tutorial para elaborar o mapa

3 / 44
COVID19

mapa-R

Sumário de hoje

Introdução básica ao R

Tutorial para elaborar o mapa

Carregar pacotes

3 / 44
COVID19

mapa-R

Sumário de hoje

Introdução básica ao R

Tutorial para elaborar o mapa

Carregar pacotes

Importar dados

3 / 44
COVID19

mapa-R

Sumário de hoje

Introdução básica ao R

Tutorial para elaborar o mapa

Carregar pacotes

Importar dados

Checagem e limpeza de dados

3 / 44
COVID19

mapa-R

Sumário de hoje

Introdução básica ao R

Tutorial para elaborar o mapa

Carregar pacotes

Importar dados

Checagem e limpeza de dados

Criação de variáveis

3 / 44
COVID19

mapa-R

Versão simplificada do tutorial Obtendo dados e plotando mapas no R

Carregar pacotes

Importar dados

Checagem e limpeza de dados

Criação de variáveis

Plota o mapa

4 / 44

Apresentarei uma versão simplificada do tutorial, SEM A CHECAGEM e LIMPEZA dos DADOS (RISCAR ESSA PARTE).

Essa parte amanhã será explorada no dia 2 do minicurso.

COVID19

mapa-R

Introdução básica

R

5 / 44

Desejo agora explanar brevemente sobre o que é o R, e passar conhecimentos bem simplificados que são necessários para manipulação de dados em ambiente R.

COVID19

mapa-R

O que é o R?

R é uma linguagem e ambiente para análise estatística e produção de gráficos de alta qualidade.

6 / 44
COVID19

mapa-R

O que é o R?

R pode ser utilizado para manipular e analisar dados, criar gráficos, e simulação computacional.

7 / 44
COVID19

mapa-R

O que é o R?

R pode ter extensão de funções através do uso de pacotes, baixados por meio do Comprehensive R Archive Network (CRAN)

8 / 44
COVID19

mapa-R

Por que usar o R???

9 / 44
COVID19

mapa-R

Por que usar o R???

1. É grátis

9 / 44
COVID19

mapa-R

Por que usar o R???

1. É grátis

2. Gráficos excelentes

9 / 44
COVID19

mapa-R

Por que usar o R???

1. É grátis

2. Gráficos excelentes

3. Diversidade de ferramentas (=pacotes) para fazer análises estatísticas

9 / 44
COVID19

mapa-R

Por que usar o R???

1. É grátis

2. Gráficos excelentes

3. Diversidade de ferramentas (=pacotes) para fazer análises estatísticas

4. Liberdade para criação de funções

9 / 44
COVID19

mapa-R

Como obter o R?

Visitar a página do projeto: www.r-project.org.

10 / 44
COVID19

mapa-R

Como obter o R?

Visitar a página do projeto: www.r-project.org.

Verificar este tutorial para instalação: https://github.com/ricoperdiz/minicurso-elaboracao-mapa-R/blob/main/extra-ref/Instrucoes_ROPerdiz_instalando_Baixando_R.pdf.

10 / 44
COVID19

mapa-R

Qual é a cara do R? Mac OS

R no MAC OS X

11 / 44
COVID19

mapa-R

Qual é a cara do R? Windows

R no Windows

12 / 44
COVID19

mapa-R

Como é a linguagem do R

"Orientada a objetos" - object-oriented programming

budasaid

13 / 44
COVID19

mapa-R

Como é a linguagem do R

  • Escrever em R é como escrever em português, inglês etc;
14 / 44
COVID19

mapa-R

Como é a linguagem do R

  • Escrever em R é como escrever em português, inglês etc;

  • Programar em linguagens como R consiste em definir funções e variáveis;

14 / 44
COVID19

mapa-R

Como é a linguagem do R

  • Escrever em R é como escrever em português, inglês etc;

  • Programar em linguagens como R consiste em definir funções e variáveis;

  • Variáveis podem ser números ou palavras; guardamos esses valores para uso posterior;

14 / 44
COVID19

mapa-R

Como é a linguagem do R

  • Escrever em R é como escrever em português, inglês etc;

  • Programar em linguagens como R consiste em definir funções e variáveis;

  • Variáveis podem ser números ou palavras; guardamos esses valores para uso posterior;

  • Funções executam comandos, por meio de argumentos;

14 / 44
COVID19

mapa-R

Como é a linguagem do R

  • Escrever em R é como escrever em português, inglês etc;

  • Programar em linguagens como R consiste em definir funções e variáveis;

  • Variáveis podem ser números ou palavras; guardamos esses valores para uso posterior;

  • Funções executam comandos, por meio de argumentos;

  • Comandos geram resultados.

14 / 44
COVID19

mapa-R

R é calculadora!

1 + 1
## [1] 2
resultado <- 22*3^2
77*resultado
## [1] 15246
15 / 44
COVID19

mapa-R

Variáveis

Variáveis em R são assinaladas utilizando a notação <-.

meunome <- "Ricardo de Oliveira Perdiz"
idade <- 17
paste(meunome, "tem", idade, "anos")
## [1] "Ricardo de Oliveira Perdiz tem 17 anos"
16 / 44
COVID19

mapa-R

Mais exemplos

> string <- 'Olá, Itacoatiara!'
> meu_numero <- 25
> string
## [1] "Olá, Itacoatiara!"
> meu_numero
## [1] 25
> print(string)
## [1] "Olá, Itacoatiara!"
> print(meu_numero)
## [1] 25
17 / 44
COVID19

mapa-R

Funções e argumentos

  • Função -> é um elemento em R que requer uma ação do computador. Cumpre determinada tarefa.
18 / 44
COVID19

mapa-R

Funções e argumentos

  • Função -> é um elemento em R que requer uma ação do computador. Cumpre determinada tarefa.

  • Argumento -> especifica ou modifica como uma função trabalha. É especificado dentro de "parênteses" após o nome da função

> seq(from = 0,to = 10,by =1)
## [1] 0 1 2 3 4 5 6 7 8 9 10
18 / 44
COVID19

mapa-R

Como é a linguagem do R

Anatomia de uma linha de comando
> x <- sample(1:10,20,replace=TRUE)
> x <- sample(1:10, 20, replace = TRUE)
> print(x)
## [1] 5 4 5 6 2 3 8 1 8 7 10 7 5 6 6 2 1 10 2 3
> mean(x)
## [1] 5.05
19 / 44
COVID19

mapa-R

Detalhes nomenclaturais em R

  • Separador de decimal é ponto (= "."); vírgula separa argumentos
20 / 44
COVID19

mapa-R

Detalhes nomenclaturais em R

  • Separador de decimal é ponto (= "."); vírgula separa argumentos

  • O símbolo de igual "=" atribui valores aos argumentos

20 / 44
COVID19

mapa-R

Detalhes nomenclaturais em R

  • Separador de decimal é ponto (= "."); vírgula separa argumentos

  • O símbolo de igual "=" atribui valores aos argumentos

  • Nomes de argumentos podem ser omitidos, desde que os valores estejam seguindo a ordem pré-determinada da função. Ver o '?help'

20 / 44
COVID19

mapa-R

Detalhes nomenclaturais em R

  • Separador de decimal é ponto (= "."); vírgula separa argumentos

  • O símbolo de igual "=" atribui valores aos argumentos

  • Nomes de argumentos podem ser omitidos, desde que os valores estejam seguindo a ordem pré-determinada da função. Ver o '?help'

  • Aspas guardam texto; parênteses servem para abrir e fechar funções ou vetores; nomes de objetos não podem ter espaços nem símbolos especiais.

20 / 44
COVID19

mapa-R

O meu melhor amigo é o ? (ou a ajuda do R!)

Ter dúvidas é comum ao programar.

21 / 44
COVID19

mapa-R

O meu melhor amigo é o ? (ou a ajuda do R!)

Ter dúvidas é comum ao programar.

O R possui um excelente recurso, o ? (ajuda, ou "help").

21 / 44
COVID19

mapa-R

O meu melhor amigo é o ? (ou a ajuda do R!)

Ter dúvidas é comum ao programar.

O R possui um excelente recurso, o ? (ajuda, ou "help").

Uma das maneiras é digitar "?" + "nomeDaFunção".

?seq
21 / 44
COVID19

mapa-R

O meu melhor amigo é o ? (ou a ajuda do R!)

helpseq

22 / 44
COVID19

mapa-R

Recursos para aprender a linguagem R

Curso básico de introdução à linguagem R

Curso R

24 / 44
COVID19

mapa-R

Recursos para aprender linguagens de programação - Grasshopper

grasshopper

25 / 44
COVID19

mapa-R

Mais recursos???

26 / 44
COVID19

mapa-R

Mais recursos???

Buscar, sempre! Google, Yahoo, etc.

26 / 44
COVID19

mapa-R

R-bloggers

R bloggers

27 / 44
COVID19

mapa-R

Minicurso baseado na postagem abaixo:

Obtendo dados e plotando mapas no R

Postagem

28 / 44

O tutorial é bem simples e visa a produção de um mapa de distribuição geográfica utilizando dados que abrangem a distribuição espacial de duas espécies de Burseraceae, Protium aracouchini (Aubl.) Marchand e P. heptaphyllum (Aubl.) Marchand. A primeira planta faz parte de um complexo de espécies informalmente denominado complexo Protium aracouchini, cuja sistemática e taxonomia vem sendo objeto de estudo em meu doutorado. A segunda espécie, P. heptaphyllum, é objeto de estudo de Gabriel Damasco, colaborador do LABOTAM e aluno de doutorado na Universidade da Califórnia, Berkeley.

Os dados foram baixados do herbário virtual do Jardim Botânico de Nova Iorque que é onde trabalha o especialista em Burseraceae, Dr. Douglas Daly, e cuja coleção de espécimes e dados vêm sendo bem cuidada há algumas décadas. Para esta postagem, filtramos apenas os dados para as duas espécies citadas acima.

COVID19

mapa-R

Assuntos abordados

  • (Instalar e) Carregar pacotes

  • Importação de dados

  • Checagem de dados

  • Criação de variáveis

  • Plotagem do mapa

29 / 44
COVID19

mapa-R

Instalando pacotes

install.packages("maps")

Instalando pacotes

30 / 44
COVID19

mapa-R

Carregando os pacotes

library("maps")
31 / 44

A postagem original faz uso dos pacotes maps (para plotar o mapa), RColorBrewer (paleta de cores), magrittr (pipe, ou %>%) e dplyr (manipulação de 'dataframes').

Neste minicurso, utilizaremos apenas o pacote maps, a fim de simplificar o aprendizado.

COVID19

mapa-R

Intervalo

'coffeandcode'

32 / 44
COVID19

mapa-R

Importando os dados

Os dados estão reunidos em um arquivo chamado dados.csv, disponível em: https://github.com/ricoperdiz/Tutorials/blob/master/R_make_a_map/dados.csv.

33 / 44
COVID19

mapa-R

Importando os dados

Os dados estão reunidos em um arquivo chamado dados.csv, disponível em: https://github.com/ricoperdiz/Tutorials/blob/master/R_make_a_map/dados.csv.

As informações estão separadas por tabulação e codificadas em UTF-8.

33 / 44
COVID19

mapa-R

Importando os dados

Os dados estão reunidos em um arquivo chamado dados.csv, disponível em: https://github.com/ricoperdiz/Tutorials/blob/master/R_make_a_map/dados.csv.

As informações estão separadas por tabulação e codificadas em UTF-8.

Você pode baixar os dados direto da página do GitHub ou fazer uso do comando abaixo para ler diretamente os dados da rede.

protium <-
read.table(
file = url(
"https://raw.githubusercontent.com/ricoperdiz/Tutorials/master/R_make_a_map/dados.csv"
),
header = TRUE,
as.is = TRUE,
sep = '\t',
dec = '.'
)
33 / 44
COVID19

mapa-R

Destrinchando o read.table

read.table() - Função básica para ler arquivos no R

34 / 44
COVID19

mapa-R

Destrinchando o read.table

read.table() - Função básica para ler arquivos no R

Argumentos

file - Local do arquivo

34 / 44
COVID19

mapa-R

Destrinchando o read.table

read.table() - Função básica para ler arquivos no R

Argumentos

file - Local do arquivo

header - Tem cabeçalho ou não?

34 / 44
COVID19

mapa-R

Destrinchando o read.table

read.table() - Função básica para ler arquivos no R

Argumentos

file - Local do arquivo

header - Tem cabeçalho ou não?

as.is - Classes dos vetores. Deixa como está ou faz alguma conversão?

34 / 44
COVID19

mapa-R

Destrinchando o read.table

read.table() - Função básica para ler arquivos no R

Argumentos

file - Local do arquivo

header - Tem cabeçalho ou não?

as.is - Classes dos vetores. Deixa como está ou faz alguma conversão?

sep - Separador de texto.

34 / 44
COVID19

mapa-R

Destrinchando o read.table

read.table() - Função básica para ler arquivos no R

Argumentos

file - Local do arquivo

header - Tem cabeçalho ou não?

as.is - Classes dos vetores. Deixa como está ou faz alguma conversão?

sep - Separador de texto.

dec - Separador de decimal.

34 / 44
COVID19

mapa-R

Checagem inicial dos dados

35 / 44
COVID19

mapa-R

Checagem e limpeza dos dados

36 / 44
COVID19

mapa-R

Checagem e limpeza dos dados

Existência de valores vazios; em caso positivo, devemos eliminá-los;

36 / 44
COVID19

mapa-R

Checagem e limpeza dos dados

Existência de valores vazios; em caso positivo, devemos eliminá-los;

Confiabilidade dos valores de latitude e longitude

36 / 44
COVID19

mapa-R

Checagem e limpeza dos dados

Existência de valores vazios; em caso positivo, devemos eliminá-los;

Confiabilidade dos valores de latitude e longitude

Valores duplicados?

36 / 44

Há valores vazios?
Dados de Latitude e latitude, às vezes, por diversos fatores, há troca de sinais (negativos e positivos) ocasionando equívocos quanto à ocorrência exata da amostra. Se for percebido algo assim, é bom checar os dados e buscar corrigí-los. Há valores duplicados?

COVID19

mapa-R

Um pouco de classe de objetos

Nossa tabela, após a importação, é chamada de data.frame.

class(protium)
## [1] "data.frame"
dim(protium)
## [1] 667 8
37 / 44
COVID19

mapa-R

Acessando vetores em (ou partes de) um data.frame

Utilizamos o "$"

head(protium$recordedBy)
## [1] "A_A_de_Oliveira" "A_B_Anderson" "A_C_Londoño"
## [4] "A_C_Londoño" "A_C_Weber" "A_Castillo"
38 / 44
COVID19

mapa-R

Acessando vetores em (ou partes de) um data.frame

Ou então colchetes, com o nome da coluna dentro de aspas, dentro dos colchetes

head(protium[, "recordedBy"])
## [1] "A_A_de_Oliveira" "A_B_Anderson" "A_C_Londoño"
## [4] "A_C_Londoño" "A_C_Weber" "A_Castillo"
39 / 44
COVID19

mapa-R

Cria variáveis para plotar o mapa

40 / 44
COVID19

mapa-R

Cria variáveis para plotar o mapa

Nomes de espécies

unique(protium$Species)
## [1] "Protium aracouchini" "Protium heptaphyllum"
spp <- unique(protium$Species)
spp
## [1] "Protium aracouchini" "Protium heptaphyllum"
40 / 44
COVID19

mapa-R

Variáveis - Vetor de cores para utilizar no mapa

Para cada espécie, uma cor!

Vamos conhecer o famoso "if else", ou em português:

Se ..., caso contrário ...

41 / 44
COVID19

mapa-R

Variáveis - Vetor de cores para utilizar no mapa

Para cada espécie, uma cor!

Vamos conhecer o famoso "if else", ou em português:

Se ..., caso contrário ...

head(ifelse(protium$Species == spp[1], 'red','black'), 50)
## [1] "red" "black" "red" "red" "red" "black" "black" "black"
## [9] "black" "black" "black" "black" "black" "red" "red" "red"
## [17] "red" "black" "black" "red" "red" "red" "black" "red"
## [25] "black" "red" "black" "black" "red" "red" "red" "black"
## [33] "red" "red" "black" "red" "red" "red" "red" "black"
## [41] "black" "black" "red" "black" "black" "red" "black" "black"
## [49] "red" "black"
41 / 44
COVID19

mapa-R

Destrinchando o ifelse

spp[1]
## [1] "Protium aracouchini"
head(protium$Species == spp[1], 10)
## [1] TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
42 / 44
COVID19

mapa-R

Variáveis - Vetor de cores para utilizar no mapa

Para cada espécie, uma cor!

cores.map <- ifelse(protium$Species == spp[1], 'red','black')
head(cores.map, 50)
## [1] "red" "black" "red" "red" "red" "black" "black" "black"
## [9] "black" "black" "black" "black" "black" "red" "red" "red"
## [17] "red" "black" "black" "red" "red" "red" "black" "red"
## [25] "black" "red" "black" "black" "red" "red" "red" "black"
## [33] "red" "red" "black" "red" "red" "red" "red" "black"
## [41] "black" "black" "red" "black" "black" "red" "black" "black"
## [49] "red" "black"
43 / 44
COVID19

mapa-R

Fim do dia 1!

44 / 44
COVID19

mapa-R

Fim do dia 1!

Amanhã, dia 22 de outubro, continuaremos!

44 / 44

Meu nome é Ricardo de Oliveira Perdiz. Sou um biólogo com mestrado e doutorado em botânica, minha linha de pesquisa é com a evolução e sistemática da flora Neotropical, em especial a família do palo santo, mirra, breus, e amesclas, conhecida pelo nome científico Burseraceae. Também me dedico à criação de ferramentas para facilitar a análise de dados taxonômicos e produção de monografias taxonômicas.

Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
oTile View: Overview of Slides
sToggle scribble toolbox
Alt + fFit Slides to Screen
Esc Back to slideshow