2021-09-16

O Básico do R

O que é o R?

  • Uma calculadora?
2+2
## [1] 4
4*10
## [1] 40
sqrt(16)
## [1] 4

O que é o R?

  • Um software de estatística?
mean(c(2,3,5,8,9,5))
## [1] 5.333333
sd(c(2,3,5,8,9,5))
## [1] 2.73252
median(c(2,3,5,8,9,5))
## [1] 5

R é o idioma da ciência

RStudio

Pacotes

Maior trunfo do R

  • Grande quantidade de desenvolvedores (open-source)
  • Instalando e baixando pacotes (apenas na 1ª vez)
install.packages('ggplot2')
  • Carregando pacotes (sempre que for usar)
library(ggplot2)

OBIS

OBIS é um repositório global open-access sobre dados de biodiversidade marinha para ciência, conservação e desenvolvimento sustentável.

https://obis.org/

Robis

# instalando o pacote
#remotes::install_github("iobis/robis")
library(robis)

Documentação

O comando “occurrence”

Grupos taxonomicos

Robis

data<-occurrence(scientificname = "Caretta caretta", 
                 startdate = '2020-01-01')

O DF resultante

  • Nº de registros
nrow(data)
## [1] 110
  • Nº de variáveis
length(data)
## [1] 84

O DF resultante

names(data)
##  [1] "date_year"                     "scientificNameID"             
##  [3] "scientificName"                "superfamilyid"                
##  [5] "individualCount"               "associatedReferences"         
##  [7] "dropped"                       "aphiaID"                      
##  [9] "decimalLatitude"               "type"                         
## [11] "taxonRemarks"                  "phylumid"                     
## [13] "familyid"                      "catalogNumber"                
## [15] "occurrenceStatus"              "basisOfRecord"                
## [17] "superclass"                    "modified"                     
## [19] "id"                            "order"                        
## [21] "recordNumber"                  "georeferencedDate"            
## [23] "superclassid"                  "verbatimEventDate"            
## [25] "dataset_id"                    "decimalLongitude"             
## [27] "collectionCode"                "date_end"                     
## [29] "speciesid"                     "occurrenceID"                 
## [31] "superfamily"                   "suborderid"                   
## [33] "license"                       "date_start"                   
## [35] "genus"                         "dateIdentified"               
## [37] "ownerInstitutionCode"          "bibliographicCitation"        
## [39] "eventDate"                     "scientificNameAuthorship"     
## [41] "coordinateUncertaintyInMeters" "absence"                      
## [43] "taxonRank"                     "genusid"                      
## [45] "originalScientificName"        "marine"                       
## [47] "subphylumid"                   "vernacularName"               
## [49] "institutionCode"               "date_mid"                     
## [51] "eventTime"                     "identificationRemarks"        
## [53] "class"                         "suborder"                     
## [55] "nomenclaturalCode"             "orderid"                      
## [57] "footprintWKT"                  "datasetName"                  
## [59] "geodeticDatum"                 "taxonomicStatus"              
## [61] "kingdom"                       "waterBody"                    
## [63] "specificEpithet"               "classid"                      
## [65] "phylum"                        "species"                      
## [67] "coordinatePrecision"           "subphylum"                    
## [69] "datasetID"                     "occurrenceRemarks"            
## [71] "family"                        "category"                     
## [73] "kingdomid"                     "node_id"                      
## [75] "flags"                         "sss"                          
## [77] "shoredistance"                 "sst"                          
## [79] "bathymetry"                    "dynamicProperties"            
## [81] "organismID"                    "sex"                          
## [83] "lifeStage"                     "organismRemarks"

Dados espaciais no R

O maravilhoso pacote SF

library(sf)
s<-read_sf("input_data/sbs_case_study.shp")
s$area<-st_area(s)
s<-s[1,]
s
## Simple feature collection with 1 feature and 2 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: -53.37375 ymin: -34.69682 xmax: -41.31725 ymax: -22.89115
## Geodetic CRS:  WGS 84
## # A tibble: 1 × 3
##     fid          area                                                   geometry
##   <dbl>         [m^2]                                              <POLYGON [°]>
## 1     1 271881508394. ((-52.09875 -32.15986, -52.08375 -32.15846, -52.08375 -32…

A estrutura SF

  • Um data frame comum (com n variáveis)
  • Uma variável especial: geometria (pontos, linhas, polígonos)
plot(s)

Simplificando a geometria

s_simple<-st_simplify(s,dTolerance=5000)
plot(s_simple)

Filtrando OBIS pela localização

data<-occurrence( scientificname = "Annelida",
                 geometry=st_as_text(s_simple$geometry))
nrow(data)
## [1] 8311

Dplyr

dplyr: A Grammar of Data Manipulation

  • Ferramenta rápida e consistente para manipular df
library(dplyr)
dataf<- data%>%
        filter(institutionCode=='USP')%>%
        select(date_year,scientificName, family, sst, shoredistance, depth)%>%
        mutate(costeira=shoredistance<19312)%>%
        arrange(date_year)
nrow(dataf)
## [1] 100

date_year scientificName family sst shoredistance depth costeira
1996 Amblyosyllis spectabilis Syllidae 23.37 653 7.5 TRUE
1996 Syllis hyllebergi Syllidae 23.37 653 7.5 TRUE
1996 Proceraea picta Syllidae 23.37 653 7.5 TRUE
1996 Dipolydora armata Spionidae 23.37 653 7.5 TRUE
1996 Lysidice ninetta Eunicidae 23.37 653 7.5 TRUE
1996 Lysidice hebes Eunicidae 23.37 653 7.5 TRUE
1996 Syllis beneliahuae Syllidae 23.37 653 7.5 TRUE
1996 Exogone (Sylline) aquadulcensis Syllidae 23.30 305 7.5 TRUE
1996 Exogone naidina Syllidae 23.30 305 7.5 TRUE
1996 Syllis anops Syllidae 23.30 305 7.5 TRUE
1996 Chrysopetalum occidentale Chrysopetalidae 23.37 653 7.5 TRUE
1996 Eumida sanguinea Phyllodocidae 23.30 305 7.5 TRUE
1996 Morgana bisetosa Terebellidae 23.30 305 7.5 TRUE
1996 Salvatoria clavata Syllidae 23.30 305 7.5 TRUE
1996 Brania arminii Syllidae 23.37 653 7.5 TRUE
1996 Haplosyllis spongicola Syllidae 23.37 653 7.5 TRUE
1996 Salvatoria euritmica Syllidae 23.37 653 7.5 TRUE
1996 Sphaerosyllis bilobata Syllidae 23.30 305 7.5 TRUE
1996 Proceraea picta Syllidae 23.30 305 7.5 TRUE
1996 Grubeosyllis longiarticulata Syllidae 23.30 305 7.5 TRUE
1996 Virchowia clavata Syllidae 23.30 305 7.5 TRUE
1996 Augeneriella hummelincki Fabriciidae 23.37 653 7.5 TRUE
1996 Exogone (Exogone) marisae Syllidae 23.37 653 7.5 TRUE
1996 Sphaerosyllis bilobata Syllidae 23.37 653 7.5 TRUE
1996 Parexogone anseforbansensis Syllidae 23.37 653 7.5 TRUE
1996 Syllis glandulata Syllidae 23.37 653 7.5 TRUE
1996 Brania pusilla Syllidae 23.37 653 7.5 TRUE
1996 Sphaerosyllis brasiliensis Syllidae 23.37 653 7.5 TRUE
1996 Syllis prolifera Syllidae 23.37 653 7.5 TRUE
1996 Syllis truncata Syllidae 23.37 653 7.5 TRUE
1996 Chrysopetalum occidentale Chrysopetalidae 23.30 305 7.5 TRUE
1996 Sphaerosyllis mussismiliaicola Syllidae 23.30 305 7.5 TRUE
1996 Pseudopotamilla reniformis Sabellidae 23.37 653 7.5 TRUE
1996 Prosphaerosyllis isabellae Syllidae 23.37 653 7.5 TRUE
1996 Miscellania dentata Syllidae 23.37 653 7.5 TRUE
1996 Pseudovermilia occidentalis Serpulidae 23.37 653 7.5 TRUE
1996 Exogone (Exogone) marisae Syllidae 23.30 305 7.5 TRUE
1996 Branchiosyllis exilis Syllidae 23.30 305 7.5 TRUE
1996 Morgana bisetosa Terebellidae 23.37 653 7.5 TRUE
1996 Trypanosyllis zebra Syllidae 23.30 305 7.5 TRUE
1996 Articulatia aberrans Terebellidae 23.37 653 7.5 TRUE
1996 Eusyllis lamelligera Syllidae 23.37 653 7.5 TRUE
1996 Syllis pseudoarmillaris Syllidae 23.37 653 7.5 TRUE
1996 Salmacina ceciliae Serpulidae 23.37 653 7.5 TRUE
1996 Sphaerosyllis hystrix Syllidae 23.37 653 7.5 TRUE
1996 Syllis corallicola Syllidae 23.37 653 7.5 TRUE
1996 Syllis lutea Syllidae 23.30 305 7.5 TRUE
1996 Syllis corallicola Syllidae 23.30 305 7.5 TRUE
1996 Syllis anops Syllidae 23.37 653 7.5 TRUE
1996 Eumida sanguinea Phyllodocidae 23.37 653 7.5 TRUE
1996 Amblyosyllis spectabilis Syllidae 23.30 305 7.5 TRUE
1996 Brania pusilla Syllidae 23.30 305 7.5 TRUE
1996 Haplosyllis spongicola Syllidae 23.30 305 7.5 TRUE
1996 Brania arminii Syllidae 23.30 305 7.5 TRUE
1996 Salmacina ceciliae Serpulidae 23.30 305 7.5 TRUE
1996 Odontosyllis fulgurans Syllidae 23.30 305 7.5 TRUE
1996 Dipolydora armata Spionidae 23.30 305 7.5 TRUE
1996 Myrianida brachycephala Syllidae 23.30 305 7.5 TRUE
1996 Syllis glandulata Syllidae 23.30 305 7.5 TRUE
1996 Pseudobranchiomma minima Sabellidae 23.37 653 7.5 TRUE
1996 Erinaceusyllis erinaceus Syllidae 23.37 653 7.5 TRUE
1996 Sphaerosyllis brasiliensis Syllidae 23.30 305 7.5 TRUE
1996 Eurythoe complanata Amphinomidae 23.37 653 7.5 TRUE
1996 Parasphaerosyllis indica Syllidae 23.37 653 7.5 TRUE
1996 Exogone (Sylline) aquadulcensis Syllidae 23.37 653 7.5 TRUE
1996 Nicidion insularis Eunicidae 23.30 305 7.5 TRUE
1996 Branchiosyllis exilis Syllidae 23.37 653 7.5 TRUE
1996 Syllis maryae Syllidae 23.37 653 7.5 TRUE
1996 Grubeosyllis breviarticulata Syllidae 23.37 653 7.5 TRUE
1996 Megasyllis procera Syllidae 23.37 653 7.5 TRUE
1996 Syllis pseudoarmillaris Syllidae 23.30 305 7.5 TRUE
1996 Pileolaria Serpulidae 23.37 653 7.5 TRUE
1996 Salvatoria clavata Syllidae 23.37 653 7.5 TRUE
1996 Eunice marconii Eunicidae 23.37 653 7.5 TRUE
1996 Pileolaria Serpulidae 23.30 305 7.5 TRUE
1996 Exogone breviantennata Syllidae 23.30 305 7.5 TRUE
1996 Grubeosyllis longiarticulata Syllidae 23.37 653 7.5 TRUE
1996 Amphicorina schlenzae Sabellidae 23.37 653 7.5 TRUE
1996 Sphaerosyllis hystrix Syllidae 23.30 305 7.5 TRUE
1996 Eurythoe complanata Amphinomidae 23.30 305 7.5 TRUE
1996 Streblosoma oligobranchiatum Terebellidae 23.37 653 7.5 TRUE
1996 Notaulax Sabellidae 23.37 653 7.5 TRUE
1996 Pista corrientis Terebellidae 23.37 653 7.5 TRUE
1996 Pseudovermilia occidentalis Serpulidae 23.30 305 7.5 TRUE
1996 Nicidion insularis Eunicidae 23.37 653 7.5 TRUE
1996 Syllis lutea Syllidae 23.37 653 7.5 TRUE
1996 Trypanosyllis zebra Syllidae 23.37 653 7.5 TRUE
1996 Amphicorina schlenzae Sabellidae 23.30 305 7.5 TRUE
1996 Sphaerosyllis mussismiliaicola Syllidae 23.37 653 7.5 TRUE
1996 Paralaeospira calypso Serpulidae 23.30 305 7.5 TRUE
1996 Lumbrineris inflata Lumbrineridae 23.30 305 7.5 TRUE
1996 Exogone breviantennata Syllidae 23.37 653 7.5 TRUE
1996 Lumbrineris inflata Lumbrineridae 23.37 653 7.5 TRUE
1996 Lysidice ninetta Eunicidae 23.30 305 7.5 TRUE
1996 Salvatoria heterocirra Syllidae 23.30 305 7.5 TRUE
1996 Odontosyllis fulgurans Syllidae 23.37 653 7.5 TRUE
1996 Eusyllis lamelligera Syllidae 23.30 305 7.5 TRUE
1996 Salvatoria heterocirra Syllidae 23.37 653 7.5 TRUE
1996 Erinaceusyllis erinaceus Syllidae 23.30 305 7.5 TRUE
NA Nicidion insularis Eunicidae 23.46 -26 7.5 TRUE

GGPLOT

Vantagens

Gráficos de análise exploratoria

library(ggplot2)
ggplot(data,aes(x=subclass))+geom_histogram(stat='count')

Gráficos de análise exploratoria

ggplot(data,aes(x=depth))+geom_histogram()+
  theme_bw()

Gráficos de análise exploratoria

ggplot(data,aes(x=depth))+geom_histogram(bins=10)+
  theme_bw()+xlab('Profundidade (m)')+ylab('Nº de Ocorrências')

Gráficos de análise exploratoria

ggplot(data,aes(x=as.numeric(year),fill=order))+geom_bar()+
  theme_bw()+ xlab(NULL)+ylab('Nº de Ocorrências')+xlim(c(1990,2020))

Gráficos de análise exploratória

ggplot(data,aes(x=order,y=depth))+geom_boxplot()+
  theme_bw()+xlab(NULL)+ylab('Profundidade')

Gráficos de análise exploratória

ggplot(data,aes(y=decimalLatitude))+geom_density()+
  theme_bw()+
  xlab('Densidade de Ocorrência')+ylab('Latitude')

Mapas dinâmicos

Leaflet

map_leaflet(data, color='black', provider_tiles = "Esri.OceanBasemap",
            popup=function(x){x["scientificName"]})

Exportação dos dados

  • CSV
write.csv2(data,file='annelida.csv')
  • Excel
library(writexl)
write_xlsx(data,path = 'annelida.xlsx')
  • Arquivo do R
save(data,file='annelida.Rda')

Convertendo para Shapefile

data_sf<-st_as_sf(data, 
                  coords=c("decimalLongitude","decimalLatitude"),
                  crs=4326)
plot(data_sf[5])

Exportando Shapefile

write_sf(data_sf,dsn = 'annelida.shp')

SIBBR (GBIF)

  • Pacote rgbif ## Próximos passos?
  • Definição dos grupos taxonômicos de interesse
  • Agregação por grids
  • Presença/Ausência
  • Mesclar com GBIF
  • What else?