class: center, middle, inverse, title-slide # Introdução ao uso de dados geoespaciais no R
## 2 Funcionamento da linguagem R ### Maurício H. Vancine
Milton C. Ribeiro ### UNESP - Rio Claro
Laboratório de Ecologia Espacial e Conservação (LEEC) ### 25/10/2021-05/11/2021 --- class: clear background-image: url(img/r_rollercoaster.png) background-size: 900px <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [@allison_horst](https://twitter.com/allison_horst) --- background-image: url(img/r_rstudio.png) background-size: 500px background-position: 80% 70% # 2 Funcionamento da linguagem R ## Conteúdo 1. Linguagem R 1. RStudio 1. Console 1. Scripts 1. Operadores 1. Objetos 1. Funções 1. Pacotes 1. Ajuda 1. Ambiente 1. Citações 1. Principais erros 1. Principal material de estudo --- background-image: url(img/r_logo.svg) background-size: 400px background-position: 50% 70% # 1. Linguagem R ## Definição O R é uma **linguagem de programação livre** (*open source*), direcionada à **manipulação, análise e visualização de dados**, com diversas **expansões** (*pacotes*) para o uso de **dados com formatos específicos** <br><br><br><br><br><br><br><br><br><br><br><br> [R](https://www.r-project.org/) --- background-image: url(img/general_curso_r.png), url(img/general_cinco_motivos.png) background-size: 500px, 400px background-position: 25% 80%, 90% 90% # 1. Linguagem R ## Cinco motivos para usar R 1. R é completamente **gratuito** 1. Pessoas da comunidade **disponibilizam** seu trabalho em R 1. R possui um ecossistema que incentiva a **reprodutibilidade** 1. R tem uma **comunidade** vibrante e crescente 1. Os focos da linguagem são **modelagem, visualização e análise de dados** .footnote[ [Curso-R](https://blog.curso-r.com/posts/2021-07-23-por-que-usar-r/) ] --- background-image: url(img/r_rollercoaster.png), url(img/general_code_meme.jpg) background-size: 600px, 500px background-position: 7% 40%, 91% 80% # 1. Linguagem R ## É legal, mas nem sempre é fácil... <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [@allison_horst](https://twitter.com/allison_horst) --- class: inverse, center, middle # E de onde surgiu o R? --- background-image: url(img/person_john_chambers.jpg) background-size: 350px background-position: 80% 80% # 1. Linguagem R ## Histórico - Linguagem S ### John M. Chambers (Stanford University, CA, EUA) - Old S (1976-1987) - New S (1988-1997) - S4 (1998) <br><br> - Interface: S-PLUS (1988-2008) <br><br><br><br><br><br><br> [Wickham (2013)](http://vita.had.co.nz/papers/r-s.pdf) --- background-image: url(img/person_gentleman_ihaka.jpg) background-size: 400px background-position: 85% 80% # 1. Linguagem R ## Histórico - Linguagem R ### **R**obert Gentleman e **R**oss Ihaka (Auckland University, NZ) #### Versões - Desenvolvimento (1997-2000) - Versão 1 (2000-2004) - Versão 2 (2004-2013) - Versão 3 (2013-2020) - Versão 4 (2020-atual) #### IDE (*Integrated Development Environment*) - Interface: RStudio (2011-atual) - Atualmente: **R Core Team** <br> [Wickham (2013)](http://vita.had.co.nz/papers/r-s.pdf) --- background-image: url(img/cheatsheet_base_r.png) background-size: 600px background-position: 50% 70% # 1. Linguagem R ## Base R <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Base-R](http://github.com/rstudio/cheatsheets/raw/master/base-r.pdf) --- class: inverse, center, middle # E o que o R pode fazer? --- background-image: url(img/r_markdown_output_formats.png) background-size: 350px background-position: 90% 75% # 1. Linguagem R ## Aplicações ### Análises e visualização de dados - Estatísticas univariadas e multivariadas - Análises de dados ecológicos (população, comunidades e ecossistemas) - Análise de dados espaciais, temporais e sonoros - Análise de dados funcionais, genéticos e filogenéticos - Análise de dados geoespaciais e sensoriamento retomo - Visualização de todos os dados anteriores ### R Markdown - Textos em HTML, PDF, Word, ODT, Markdown - Apresentação de slides - Websites e Blogs - Livros e artigos - Shiny --- class: inverse, center, middle # Há uns 15 anos, um nome tem se destacado no avanço da linguagem R, na parte de *manipulação, visualização e análise de dados* (tidyverse e tidymodels) --- background-image: url(img/person_hadley_wickham.jpg) background-size: 500px background-position: 50% 80% # 1. Linguagem R ## Hadley Wickham ### Cientista Chefe no RStudio e Professor Adjunto de Estatística na Universidade de Auckland, Stanford e Rice <br><br><br><br><br><br><br><br><br><br><br> [Hadley Wickham](http://hadley.nz/) --- class: inverse, center, middle # Há uns 10 anos, outro nome tem se destacado no avanço da linguagem R, na parte de *textos, sites e apresentações* (*R Markdown*) --- background-image: url(img/person_yihui_xie.jpg), url(img/person_yihui_xie_avatar.png) background-size: 500px, 150px background-position: 50% 70%, 95% 10% # 1. Linguagem R ## Yihui Xie ## Engenheiro de software no RStudio <br><br><br><br><br><br><br><br><br><br><br><br> [Yihui Xie](https://yihui.name/) --- background-image: url(img/r_rstudio_vs01.png) background-size: 600px background-position: 50% 70% # 2. RStudio ## Todos conhecem o RStudio? --- background-image: url(img/r_rstudio_vs02.png), url(img/r_rstudio_vs03.png) background-size: 650px, 650px background-position: 50% 30%, 50% 85% # 2. RStudio ## IDE *Integrated Development Environment* ou Ambiente de Desenvolvimento Integrado <br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Ismay & Kim (2020)](https://moderndive.com/) --- background-image: url(img/cheatsheet_rstudio_ide.png) background-size: 600px background-position: 50% 50% # 2. RStudio ## RStudio IDE Cheatsheet <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [RStudio-IDE](https://github.com/rstudio/cheatsheets/raw/master/rstudio-ide.pdf) --- background-image: url(img/rstudio.png) background-size: 800px background-position: 50% 70% # 2. RStudio ## Interface --- background-image: url(img/rstudio.png), url(img/rstudio_logo.svg) background-size: 500px, 300px background-position: 90% 80%, 90% 25% # 2. RStudio ## Janelas e abas **1. Editor/Script**: é onde escrevemos nossos códigos em R ou R Markdown **2. Console**: é onde os códigos são rodados e vemos as saídas **3. Environment**: painel com todos os objetos criados na sessão **3. History**: painel com o histórico dos códigos rodados **3. Connection**: painel para conectar banco de dados **3. Git**: painel do controle de versão **3. Tutorial**: painel de tutoriais **4. Files**: painel que mostra os arquivos no diretório de trabalho **4. Plots**: painel onde os gráficos são apresentados **4. Packages**: painel que lista os pacotes **4. Help**: painel onde a documentação das funções é exibida **4. Viewer**: painel de visualização --- background-image: url(img/rstudio.png), url(img/rstudio_logo.svg) background-size: 500px, 300px background-position: 90% 30%, 90% 85% # 2. RStudio ## Atalhos - **f1**: abre o painel de *Help* - **ctrl + Enter**: roda a linha selecionada no script - **ctrl + Shift + N**: abre um novo script - **ctrl + S**: salva um script - **ctrl + Z**: desfaz uma operação - **ctrl + shift + Z**: refaz uma operação - **alt + -**: insere um sinal de atribuição (<-) - **ctrl + Shift + M**: insere um operador pipe (%>%) - **ctrl + Shift + C**: comenta uma linha no script - insere um (#) - **ctrl + Shift + R**: insere uma sessão (# ----------------------) - **ctrl + Shift + H**: abre uma janela para selecionar o diretório de trabalho - **ctrl + Shift + f10**: reinicia o console - **ctrl + L**: limpa os códigos do console - **alt + Shift + K**: abre uma janela com todos os atalhos disponíveis --- background-image: url(img/rstudio_project_logo.png), url(img/general_teressact.jpg), url(img/rstudio_project.png) background-size: 100px, 100px, 700px background-position: 95% 10%, 95% 35%, 60% 80% # 2. RStudio ## Projeto R (.Rproj) (Tesseract) - Facilita o trabalho em múltiplos ambientes - Cada projeto possui seu diretório, documentos e workspace - Permite versionamento --- background-image: url(img/rstudio_project_logo.png), url(img/general_teressact.jpg), url(img/rstudio_project.webp) background-size: 100px, 100px, 430px background-position: 95% 10%, 95% 35%, 50% 90% # 2. RStudio ## Projeto R (.Rproj) (Tesseract) ### Sempre **abram o RStudio** pelo arquivo **.Rproj** ### Ou **definam o projeto** depois de abrir o RStudio --- background-image: url(img/rstudio_script.png) background-size: 450px background-position: 50% 90% # 3. Console ## Console ### O console é onde a **linguagem R instalada é carregada** para executar os códigos --- # 3. Console ## Console ### O console é onde a **linguagem R instalada é carregada** para executar os códigos <br> ```r 10 + 2 ``` ``` ## [1] 12 ``` <br> -- ```r 1:42 ``` ``` ## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ``` --- class: inverse, center, middle # Alguém notou alguns colchetes a mais? --- # 3. Console ## Colchetes ### Indicam a **posição** em uma sequência de elementos ```r 10 + 2 ``` ``` ## [1] 12 ``` -- ```r 1:42 ``` ``` ## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ``` -- ```r 10:60 ``` ``` ## [1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ## [26] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 ## [51] 60 ``` --- background-image: url(img/rstudio_script.jpg) background-size: 700px background-position: 50% 100% # 4. Scripts ## Script (.R) **Atalho**: `Ctrl + Shift + N` - São **rascunhos** dos códigos - Será neles que os **códigos serão escritos** e depois **enviados ao console do R** - São **arquivos de texto simples**, que serão salvos no formato .R --- # 4. Scripts ## Script (.R) ### Todos os **códigos** devem ser digitados preferencialmente no **script** ### Deixem o **cursor** em **qualquer local da linha** e executem essa linha utilizando essa **combinação**: ### **Atalho**: `Ctrl + Enter` -- ### Vamos testar: -- ```r 1 ``` ``` ## [1] 1 ``` -- ```r 1 + 2 ``` ``` ## [1] 3 ``` --- class: inverse, center, middle # E é isso que faremos pelo resto de nossas vidas... --- # 4. Scripts ## Esclarecimentos <br> ### Isso é texto, não digite no R! -- <br> ### Digitar no script ```r print("Isso é o resultado que deve aparecer no console") ``` -- ### Resultado no console ``` ## [1] "Isso é o resultado que deve aparecer no console" ``` --- background-image: url(img/rstudio_script.png) background-size: 500px background-position: 50% 70% # 4. Scripts ## Salvar um script **Atalho**: `ctrl + S` --- background-image: url(img/general_directory.png) background-size: 400px background-position: 70% 80% # 4. Scripts ## Salvar um script ### Pasta do diretório `~/course-geospatial-data-r/`: - 00_plano_ensino - 01_slides - **02_scripts** - 03_dados -- <br><br> ### Nome do arquivo ## `02_script_intro_geocomp_r.R` --- # 4. Scripts ## Comentários (#) ### Comentários **não são lidos** pelo R e **descrevem informações** em nosso script ### São representados pelo **#** (hash) ou **#'** (hash-linha) <br> ### Informações sobre os códigos ```r # comentarios # o r nao le o codigo depois do # (hash) 42 # essas palavras nao sao executadas, apenas o 42 ``` ``` ## [1] 42 ``` --- # 4. Scripts ## Comentários (#) ### Comentários **não são lidos** pelo R e **descrevem informações** em nosso script ### São representados pelo **#** (hash) ou **#'** (hash-linha) <br> ### Cabeçalho ```r #' --- #' titulo: Introdução ao uso de dados geoespaciais no R #' autor: seu nome #' data: 25-10-2021 #' --- ``` --- # 5. Operadores ## Operadores .pull-left[ ### Operadores aritméticos (Números) <br> | Operador | Descrição | Uso | |:--------:|:--------------------:|:-------:| | + | Adição | a + b | | – | Subtração | a - b | | * | Multiplicação | a * b | | / | Divisão | a / b | | %% | Resto da divisão | a %% b | | %/% | Quociente da divisão | a %/% b | | ^ | Potenciação | a^b | ] .pull-right[ ### Operadores relacionais (TRUE|FALSE) <br> | Operador | Descrição | Uso | |:--------:|:---------------------:|:-------:| | < | Menor | a < b | | > | Maior | a > b | | == | Igual | a == b | | <= | Menor ou igual | a <= b | | >= | Maior ou igual | a > = b | | != | Não igual (diferente) | a!=b | ] --- # 5. Operadores ## Ordem das operações aritméticas <br> ### .center[**`PRIORITÁRIO`** `()` > `^` > `* ou /` > `+ ou -` **`NÃO PRIORITÁRIO`**] <br> ```r # sem especificar - segue a ordem 1 * 2 + 2 / 2 ^ 2 ``` ``` ## [1] 2.5 ``` ```r # especificando - segue a ordem dos parênteses ((1 * 2) + (2 / 2)) ^ 2 ``` ``` ## [1] 9 ``` --- class: inverse, center, middle # Exercícios --- background-image: url(img/exercicio01.jpg) background-size: 500px background-position: 50% 50%
03
:
00
# Exercício 01 ## Resolvam essa equação... --- # Exercício 01 ## Resposta ```r # exercicio 01 7 + 7 / 7 + 7 * 7 - 7 ``` ``` ## [1] 50 ``` --- # 6. Objetos ## Atribuição (<-) ### Objetos são palavras que **atribuímos** dados -- ### A atribuição possibilita a **manipulação** de dados ou resultados de análises -- ### Utilizaremos o símbolo **"<" (menor)** seguido de **"-" (menos)**, **sem espaço**!!! <br> -- ## **palavra <- dados** ### **Atalho**: `Alt + -` -- background-image: url(img/r_assignment.jpg) background-size: 450px background-position: 80% 90% --- # 6. Objetos ## Vamos atribuir o **valor 10** à palavra **obj10** -- ```r # atribuicao - simbolo (<-) obj10 <- 10 ``` -- ## Agora a palavra **obj10** vale **10** ### Mas não aconteceu nada.... -- background-image: url(img/gif_where.gif) background-size: 500px background-position: 50% 90% --- # 6. Objetos ## Sempre **confira** a atribuição!!! ## Chame o objeto **novamente**!!! ```r # atribuicao - simbolo (<-) obj10 <- 10 obj10 ``` ``` ## [1] 10 ``` -- ## Outro exemplo ```r # atribuicao - simbolo (<-) obj2 <- 2 obj2 ``` ``` ## [1] 2 ``` --- # 6. Objetos ## CUIDADO! ### O R **sobrescreve** os valores dos objetos com o **mesmo nome**! -- ```r # sobrescreve o valor dos objetos obj <- 100 obj ``` ``` ## [1] 100 ``` -- ```r # obj agora vale 2 obj <- 2 obj ``` ``` ## [1] 2 ``` --- class: inverse, center, middle # Os objetos podem ser visualizados no painel *Environment* --- background-image: url(img/rstudio_script.png) background-size: 500px background-position: 50% 70% # 6. Objetos ## Ambiente (*Environment*) --- # 6. Objetos ## O R tem **limitações** ao nomear objetos! -- 1. Nome de objetos só podem **começar por letras (a-z ou A-Z) ou pontos (.)** -- 2. Nome de objetos só podem **conter letras (a-z ou A-Z), números (0-9), underscores (_) ou pontos (.)** -- 3. R é *case-sensitive*, i.e., ele difere **letras maiúsculas** de **minúsculas**. Assim, um objeto chamado *"resposta"* é diferente do objeto *"RESPOSTA"* -- 4. Evitem utilizar **letras maiúsculas**, **acentos** ou **cedilha (ç)** -- 5. Nome de objetos não podem ser iguais a **nomes especiais**: `break, else, FALSE, for, function, if, Inf, NA, NaN, next, repeat, return, TRUE, while` --- # 6. Objetos ## Podemos utilizar **objetos** para fazer operações -- ```r # definir dois objetos va1 <- 10 va1 ``` ``` ## [1] 10 ``` ```r va2 <- 2 va2 ``` ``` ## [1] 2 ``` --- # 6. Objetos ## Podemos utilizar **objetos** para fazer operações ```r # operacoes com objetos va1 + va2 # adicao ``` ``` ## [1] 12 ``` -- ```r va1 - va2 # subtracao ``` ``` ## [1] 8 ``` -- ```r va1 * va2 # multiplicacao ``` ``` ## [1] 20 ``` -- ```r va1 / va2 # divisao ``` ``` ## [1] 5 ``` --- # 6. Objetos ## Podemos utilizar **objetos** para fazer operações ```r # operacoes com objetos e atribuicao adi <- va1 + va2 # adicao adi ``` ``` ## [1] 12 ``` -- ```r sub <- va1 - va2 # subtracao sub ``` ``` ## [1] 8 ``` -- ```r mul <- va1 * va2 # multiplicacao mul ``` ``` ## [1] 20 ``` -- ```r div <- va1 / va2 # divisao div ``` ``` ## [1] 5 ``` --- class: inverse, middle, center # Exercícios --- # Exercício 02 ## Verifique se 3x2³ é maior que 2x3²
03
:
00
--- # Exercício 02 ## Resposta ```r # exercicio 02 3 * 2 ^ 3 >= 2 * 3 ^ 2 ``` ``` ## [1] TRUE ``` --- background-image: url(img/code_function.png), url(img/code_function_annotated.png) background-size: 250px, 400px background-position: 87% 35%, 85% 90% # 7. Funções ## Funções ### **Códigos** que realizam **operações** em **argumentos** <br> ## Estrutura de uma função: <br> > nome_da_funcao(argumento1, argumento2) <br> 1. **Nome da função**: remete ao que ela faz 1. **Parênteses**: limitam a função 1. **Argumentos**: onde a função atuará 1. **Vírgulas**: separam os argumentos --- # 7. Funções ## Exemplos ```r # soma sum(10, 2) ``` ``` ## [1] 12 ``` ```r # soma de objetos sum(obj10, obj2) ``` ``` ## [1] 12 ``` ```r # soma de objetos atribuidos a objetos obj_sum <- sum(obj10, obj2) ``` --- # 7. Funções ## Argumentos ### Os **argumentos** de uma função podem ser de **dois tipos**: 1. **Valores** ou **Objetos**: a função irá **alterar os valores** em si ou os valores **atribuídos** aos objetos 2. **Parâmetros**: valores fixos que informam um **método** ou a realização de uma **operação**. Informa-se o **nome desse argumento**, seguido de **"="** e um *número*, *texto* ou *TRUE* ou *FALSE* -- ### Exemplo: ```r sum(1, 2, 3, NA) ``` ``` ## [1] NA ``` ```r sum(1, 2, 3, NA, na.rm = TRUE) ``` ``` ## [1] 6 ``` --- # 7. Funções ## 1. Argumentos como **valores** <br><br> ```r # funcoes - argumentos como valores # soma sum(10, 2) ``` ``` ## [1] 12 ``` -- <br> ```r # produto prod(10, 2) ``` ``` ## [1] 20 ``` --- # 7. Funções ## 1. Argumentos como **objetos** <br><br> ```r # funcoes - argumentos como objetos # soma sum(va1, va2) ``` ``` ## [1] 12 ``` -- <br> ```r # produto prod(va1, va2) ``` ``` ## [1] 20 ``` --- # 7. Funções ## 2. Argumentos como **parâmetros** ```r # funcoes - nome dos argumentos # repeticao - todos rep(x = 1:5, times = 10) ``` ``` ## [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 ## [39] 4 5 1 2 3 4 5 1 2 3 4 5 ``` <br><br> -- ```r # repeticao - cada rep(x = 1:5, each = 10) ``` ``` ## [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 ## [39] 4 4 5 5 5 5 5 5 5 5 5 5 ``` --- # 7. Funções ## Atribuição de resultados a objetos ```r # atribuicao dos resultados # repeticao - todos rep_times <- rep(x = 1:5, times = 10) rep_times ``` ``` ## [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 ## [39] 4 5 1 2 3 4 5 1 2 3 4 5 ``` -- ```r # atribuicao dos resultados # repeticao - todos rep_each <- rep(x = 1:5, each = 10) rep_each ``` ``` ## [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 ## [39] 4 4 5 5 5 5 5 5 5 5 5 5 ``` --- # 7. Funções ## Atribuição, função e linha temporal -- **Criar** dois objetos ```r # resposta # criar dois objetos foo <- 2 bar <- 3 ``` -- **Somar** esses objetos e **atribuição** ao objeto *su* ```r # somar e atribuir su <- sum(foo, bar) su ``` ``` ## [1] 5 ``` -- **Raiz quadrada** do *su* e **atribuição** ao *sq* ```r # raiz e atribuir sq <- sqrt(su) sq ``` ``` ## [1] 2.236068 ``` --- # 7. Funções ## Atribuição, função e linha temporal ### Esse é o processo de programação no R: <br><br> ## 1. **Atribuição** de dados a objetos ## 2. **Funções** que **operam e mudam** esses dados ## 3. Nova **atribuição** desses resultados a novos objetos --- class: inverse, middle, center # Exercícios --- # Exercício 03 ### Criem dois objetos (qualquer nome) com os valores 100 e 300 ### Multipliquem esses objetos (função **prod**) e atribuam ao objeto *mult* ### Façam o logaritmo natural (função **log**) do objeto *mult* e atribuam ao objeto *ln*
04
:
00
--- # Exercício 03 ## Resposta ```r # exercicio 03 # criar dois objetos foo <- 100 bar <- 300 ``` -- ```r # multiplicar e atribuir mult <- prod(foo, bar) mult ``` ``` ## [1] 30000 ``` -- ```r # raiz e atribuir ln <- log(mult) ln ``` ``` ## [1] 10.30895 ``` --- class: inverse, center, middle # Nesse momento vocês devem estar se perguntando: como raios vou saber o nome das funções?! --- class: clear, inverse background-image: url(img/gif_google_it.gif) background-size: 1000px --- class: clear background-image: url(img/general_ajuda_google.png) background-size: 1100px background-position: 50% 50% # 3.7 Funções ## Uma **maracutaia** para ajudar! <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Curso-R (2021)](https://livro.curso-r.com/index.html) --- class: inverse, center, middle # E de onde vêm as funções?! --- background-image: url(img/package_r.png) background-size: 200px background-position: 90% 100% # 7. Funções ## Funções vêm de **duas fontes**: ## 1. Pacotes já **instalados por padrão** e que são **carregados** quando abrimos o R ## 2. Pacotes que **instalamos** e **carregamos** com códigos --- class: inverse, center, middle # E o que são pacotes afinal?! --- background-image: url(img/package_r.png) background-size: 150px background-position: 97% 7% # 8. Pacotes ## **Coleção de funções** para executar **tarefas específicas** ### Duas fontes: - **CRAN** (*finalizados*) - **GitHub** (em *desenvolvimento*) ### Verificar **pacotes carregados** ```r # verificar pacotes carregados search() ``` ``` ## [1] ".GlobalEnv" "package:countdown" "package:stats" ## [4] "package:graphics" "package:grDevices" "package:utils" ## [7] "package:datasets" "package:methods" "Autoloads" ## [10] "org:r-lib" "package:base" ``` --- background-image: url(img/package_r.png) background-size: 150px background-position: 97% 7% # 8. Pacotes ## **Coleção de funções** para executar **tarefas específicas** ### Duas fontes: - **CRAN** (*finalizados*) - **GitHub** (em *desenvolvimento*) ### Verificar **pacotes instalados** ```r # verificar pacotes instalados library() ``` --- background-image: url(img/package_r.png) background-size: 150px background-position: 97% 7% # 8. Pacotes ## Ex.: pacote `vegan` <br> ## Fontes: ### Pacotes do CRAN https://cran.r-project.org/web/packages/vegan/index.html <br> ### Pacotes do GitHub https://github.com/vegandevs/vegan --- background-image: url(img/package_r.png) background-size: 150px background-position: 97% 7% # 8. Pacotes ## Instalar pacotes ### 1. Instala-se apenas **uma vez** ### 2. **Precisa** estar conectado à **internet** ### 3. O **nome do pacote precisa** estar entre **aspas** ### 4. Função (CRAN): `install.packages()` ```r # instalar pacotes install.packages("vegan") ``` --- background-image: url(img/package_r.png) background-size: 150px background-position: 97% 7% # 8. Pacotes ## Carregar pacotes ### 1. Carrega-se **toda vez** que se abre **uma nova sessão do R** ### 2. **Não precisa** estar conectado à **internet** ### 3. O **nome do pacote não precisa** estar entre **aspas** ### 4. Funções: `library()` ou `require()` ```r # carregar pacotes library(vegan) ``` --- background-image: url(img/package_r.png) background-size: 150px background-position: 97% 7% # 8. Pacotes ## Instalar pacotes do GitHub ### 1. Instalar pacote **devtools** ```r # instalar pacote devtools install.packages("devtools") # carregar pacote devtools library(devtools) ``` ### Instalar usando a função `install_github()` ### Atentar para usar essa forma **usuário/repositório** ```r # instalar pacote do github install_github("vegandevs/vegan") # carregar pacote do github library("vegan") ``` --- background-image: url(img/package_r.png) background-size: 150px background-position: 97% 7% # 8. Pacotes ## Atualização de pacotes ### Pacotes são **atualizados com frequência** ### Pacotes **não se atualizam sozinhos** ### A instalação de um pacote pode depender da **versão** de outros pacotes ### Geralmente é uma função que **demora** para rodar <br> ```r # atualizacao dos pacotes instalados update.packages(ask = FALSE, checkBuilt = TRUE) ``` --- class: inverse, center, middle # E onde ficam esses pacotes no meu notebook? --- # 8. Pacotes ## Diretório dos pacotes instalados ```r # diretorios de intalacao dos pacotes .libPaths()[1] ``` ``` ## [1] "/home/mude/R/x86_64-pc-linux-gnu-library/4.1" ``` ## Windows C:/Users/**nome_do_computador**/Documentos/R/win-library/**numero_da_versao_r** <br> ## Unix (Linux e MacOS): /home/**nome_do_computador**/R/**tipo_do_computador**/**numero_da_versao_r** --- background-image: url(img/package_r.png) background-size: 150px background-position: 97% 7% # 8. Pacotes ## Exemplos: ### **vegan** – análises de comunidades ### **sf** – manipulação de vetores ### **raster** – manipulação de rasters ### **ggplot2** – gráficos ### **bblme** – seleção de modelos (AIC) ### **tidyverse** – data science --- class: inverse, center, middle # E quantos pacotes existem? --- background-image: url(img/number_packages.png) background-size: 600px background-position: 50% 80% # 8. Pacotes ## Número de pacotes no CRAN (atualmente) ```r nrow(available.packages()) ``` ``` ## [1] 18405 ``` <br><br><br><br><br><br><br><br><br><br><br><br> [Scraping CRAN with rvest](https://www.r-bloggers.com/2017/03/scraping-cran-with-rvest/) --- class: inverse, middle, center # Exercícios --- # Exercício 04 ## Instalem o pacote **tidyverse** do CRAN
02
:
00
--- # Exercício 04 ## Resposta ```r # exercicio 04 install.packages("tidyverse") ``` --- # 9. Ajuda ## Descreve as informações de uma função ```r # ajuda # descreve as informacoes de uma funcao help("mean") # arquivo .html ?mean ``` - **Description**: resumo da função - **Usage**: como utilizar a função e quais os seus argumentos - **Arguments**: detalha os argumentos e como os mesmos devem ser especificados - **Details**: detalhes importantes para se usar a função - **Value**: mostra como interpretar a saída (*output*) da função (os resultados) - **Note**: notas gerais sobre a função - **Authors**: autores da função - **References**: referências bibliográficas para os métodos usados para construção da função - **See also**: funções relacionadas - **Examples**: exemplos do uso da função. Às vezes pode ser útil copiar esse trecho e colar no R para ver como funciona e como usar a função --- background-image: url(img/rstudio_help.png) background-size: 500px background-position: 50% 70% # 9. Ajuda ## Descreve as informações de uma função --- background-image: url(img/r_package_help.png) background-size: 800px background-position: 90% 70% # 9. Ajuda ## Detalhes de um pacote ```r # detalhes de um pacote library(help = "vegan") ``` <br> - **Descrição** - **Versão** - **Autores** - **Dependências** - **Sites** - **Repositório** - **Índice de funções** - **Diretório** --- class: inverse, center, middle # Todos se lembram da atribuição e criação de objetos? --- class: inverse, center, middle # palavra <- dados --- # 10. Ambiente ### Tamanho dos objetos ```r # tamanho de um objeto object.size("bar") ``` ``` ## 112 bytes ``` ### Listar todos os objetos criados ```r # listar objetos ls() ``` ``` ## [1] "adi" "bar" "div" "foo" "ln" "mul" ## [7] "mult" "obj" "obj_sum" "obj10" "obj2" "rep_each" ## [13] "rep_times" "sq" "su" "sub" "va1" "va2" ``` ```r # listar objetos objects() ``` ``` ## [1] "adi" "bar" "div" "foo" "ln" "mul" ## [7] "mult" "obj" "obj_sum" "obj10" "obj2" "rep_each" ## [13] "rep_times" "sq" "su" "sub" "va1" "va2" ``` --- background-image: url(img/gif_holy_shit.gif) background-size: 700px background-position: 50% 78% # 10. Ambiente ## CUIDADO! ### Toda a vez que **fechamos o R**, os objetos criados são **apagados**! --- # 10. Ambiente ### Salvar todos os objetos criados (.RData) > Session -> Save Workspace As... -> meus_objetos.RData ```r # exportar objetos save.image("todos_meus_objetos.RData") ``` -- ### Carregar os objetos criados e salvos > Session -> Load Workspace... -> meus_objetos.RData ```r # importar objetos load("todos_meus_objetos.RData") ``` --- # 10. Ambiente ### Salvar todos os objetos criados (.RData) ```r # salvar apenas um objeto save(bar, file = "meu_obj.RData") # salvar apenas um objeto save(bar, adi, file = "meus_objs.RData") ``` -- ### Carregar os objetos criados e salvos ```r # carregar os objetos load("meus_objs.RData") ``` --- # 10. Ambiente ### Salvar todos os objetos criados (.rds) ```r # salvar um objeto para um arquivo saveRDS(obj, file = "meu_obj.rds") ``` -- ### Carregar os objetos criados e salvos ```r # carregar esse objeto readRDS(file = "meu_obj.rds") ``` --- # 10. Ambiente ### Remover um objeto ```r # listar objetos ls() ``` ``` ## [1] "adi" "bar" "div" "foo" "ln" "mul" ## [7] "mult" "obj" "obj_sum" "obj10" "obj2" "rep_each" ## [13] "rep_times" "sq" "su" "sub" "va1" "va2" ``` -- ```r # remover o objeto "bar" rm(bar) ``` -- ```r # listar objetos ls() ``` ``` ## [1] "adi" "div" "foo" "ln" "mul" "mult" ## [7] "obj" "obj_sum" "obj10" "obj2" "rep_each" "rep_times" ## [13] "sq" "su" "sub" "va1" "va2" ``` --- # 10. Ambiente ### Remover todos os objetos ```r # listar objetos ls() ``` ``` ## [1] "adi" "div" "foo" "ln" "mul" "mult" ## [7] "obj" "obj_sum" "obj10" "obj2" "rep_each" "rep_times" ## [13] "sq" "su" "sub" "va1" "va2" ``` -- ```r # remover todos os objetos rm(list = ls()) ``` -- ```r # listar objetos ls() ``` ``` ## character(0) ``` --- # 10. Ambiente ### Carregar os objetos criados e salvos > Session -> Load Workspace... -> meus_objetos.RData ```r # rodem para verificar ls() ``` ``` ## [1] "adi" "bar" "foo" "lo" "mu" "obj" ## [7] "obj_10" "obj_2" "rep_each" "rep_times" "sq" "su" ## [13] "sub" "va1" "va2" ``` --- # 11. Citações ## Como citar o R e os pacotes em trabalhos? ```r ## citacao do r e dos pacotes # citacao do R citation() ``` ``` ## ## To cite R in publications use: ## ## R Core Team (2021). R: A language and environment for statistical ## computing. R Foundation for Statistical Computing, Vienna, Austria. ## URL https://www.R-project.org/. ## ## A BibTeX entry for LaTeX users is ## ## @Manual{, ## title = {R: A Language and Environment for Statistical Computing}, ## author = {{R Core Team}}, ## organization = {R Foundation for Statistical Computing}, ## address = {Vienna, Austria}, ## year = {2021}, ## url = {https://www.R-project.org/}, ## } ## ## We have invested a lot of time and effort in creating R, please cite it ## when using it for data analysis. See also 'citation("pkgname")' for ## citing R packages. ``` --- # 11. Citações ## Como citar o R e os pacotes em trabalhos? ```r # citacao dos pacotes citation("vegan") ``` ``` ## ## To cite package 'vegan' in publications use: ## ## Jari Oksanen, F. Guillaume Blanchet, Michael Friendly, Roeland Kindt, ## Pierre Legendre, Dan McGlinn, Peter R. Minchin, R. B. O'Hara, Gavin ## L. Simpson, Peter Solymos, M. Henry H. Stevens, Eduard Szoecs and ## Helene Wagner (2020). vegan: Community Ecology Package. R package ## version 2.5-7. https://CRAN.R-project.org/package=vegan ## ## A BibTeX entry for LaTeX users is ## ## @Manual{, ## title = {vegan: Community Ecology Package}, ## author = {Jari Oksanen and F. Guillaume Blanchet and Michael Friendly and Roeland Kindt and Pierre Legendre and Dan McGlinn and Peter R. Minchin and R. B. O'Hara and Gavin L. Simpson and Peter Solymos and M. Henry H. Stevens and Eduard Szoecs and Helene Wagner}, ## year = {2020}, ## note = {R package version 2.5-7}, ## url = {https://CRAN.R-project.org/package=vegan}, ## } ## ## ATTENTION: This citation information has been auto-generated from the ## package DESCRIPTION file and may need manual editing, see ## 'help("citation")'. ``` --- class: clear, inverse, middle, center # Erros!!! --- class: clear, inverse, middle, center # Se seu script rodou sem erros, tem algo errado... (Maurício Vancine) --- class: clear background-image: url(img/general_make_impossible.jpeg) background-size: 600px background-position: 50% 40% --- class: clear background-image: url(img/gif_bugcat_error.gif) background-size: 800px background-position: 50% 40% --- class: clear background-image: url(img/gif_bugcat_sad.gif) background-size: 800px background-position: 50% 50% --- # 12. Principais erros ## 1. Esquecer de completar um código (+) Parênteses ```r sum(1, 2 + ``` ``` ## Error: <text>:3:0: unexpected end of input ## 1: sum(1, 2 ## 2: + ## ^ ``` -- Aspas ```r "string + ``` ``` ## Error: <text>:1:1: unexpected INCOMPLETE_STRING ## 1: "string ## 2: + ## ^ ``` --- # 12. Principais erros ## 2. Esquecer da vírgula ```r sum(1 2) ``` ``` ## Error: <text>:1:7: unexpected numeric constant ## 1: sum(1 2 ## ^ ``` --- # 12. Principais erros ## 3. Chamar um objeto errado ```r obj <- 10 OBJ ``` ``` ## Error in eval(expr, envir, enclos): object 'OBJ' not found ``` --- # 12. Principais erros ## 4. Esquecer de carregar um pacote ```r detach("package:vegan", unload = TRUE) ``` ```r # carregar dados data(dune) # funcao do pacote vegan decostand(dune, "hell") ``` ``` ## Error in decostand(dune, "hell"): could not find function "decostand" ``` --- # 12. Principais erros ## 4. Esquecer de carregar um pacote ```r # carregar o pacote library(vegan) # carregar dados data(dune) # funcao do pacote vegan decostand(dune, "hell") ``` ``` ## Achimill Agrostol Airaprae Alopgeni Anthodor Bellpere Bromhord ## 1 0.2357023 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 2 0.2672612 0.0000000 0.0000000 0.2182179 0.0000000 0.2672612 0.3086067 ## 3 0.0000000 0.3162278 0.0000000 0.4183300 0.0000000 0.2236068 0.0000000 ## 4 0.0000000 0.4216370 0.0000000 0.2108185 0.0000000 0.2108185 0.2581989 ## 5 0.2156655 0.0000000 0.0000000 0.0000000 0.3049971 0.2156655 0.2156655 ## 6 0.2041241 0.0000000 0.0000000 0.0000000 0.2500000 0.0000000 0.0000000 ## 7 0.2236068 0.0000000 0.0000000 0.0000000 0.2236068 0.0000000 0.2236068 ## 8 0.0000000 0.3162278 0.0000000 0.3535534 0.0000000 0.0000000 0.0000000 ## 9 0.0000000 0.2672612 0.0000000 0.2672612 0.0000000 0.0000000 0.0000000 ## 10 0.3049971 0.0000000 0.0000000 0.0000000 0.3049971 0.2156655 0.3049971 ## 11 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 12 0.0000000 0.3380617 0.0000000 0.4780914 0.0000000 0.0000000 0.0000000 ## 13 0.0000000 0.3892495 0.0000000 0.3892495 0.0000000 0.0000000 0.0000000 ## 14 0.0000000 0.4082483 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 15 0.0000000 0.4170288 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 16 0.0000000 0.4605662 0.0000000 0.3481553 0.0000000 0.0000000 0.0000000 ## 17 0.3651484 0.0000000 0.3651484 0.0000000 0.5163978 0.0000000 0.0000000 ## 18 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2721655 0.0000000 ## 19 0.0000000 0.0000000 0.3110855 0.0000000 0.3592106 0.0000000 0.0000000 ## 20 0.0000000 0.4016097 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## Chenalbu Cirsarve Comapalu Eleopalu Elymrepe Empenigr Hyporadi ## 1 0.0000000 0.0000000 0.0000000 0.0000000 0.4714045 0.0000000 0.0000000 ## 2 0.0000000 0.0000000 0.0000000 0.0000000 0.3086067 0.0000000 0.0000000 ## 3 0.0000000 0.0000000 0.0000000 0.0000000 0.3162278 0.0000000 0.0000000 ## 4 0.0000000 0.2108185 0.0000000 0.0000000 0.2981424 0.0000000 0.0000000 ## 5 0.0000000 0.0000000 0.0000000 0.0000000 0.3049971 0.0000000 0.0000000 ## 6 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 7 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 8 0.0000000 0.0000000 0.0000000 0.3162278 0.0000000 0.0000000 0.0000000 ## 9 0.0000000 0.0000000 0.0000000 0.0000000 0.3779645 0.0000000 0.0000000 ## 10 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 11 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2500000 ## 12 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 13 0.1740777 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 14 0.0000000 0.0000000 0.2886751 0.4082483 0.0000000 0.0000000 0.0000000 ## 15 0.0000000 0.0000000 0.2948839 0.4662524 0.0000000 0.0000000 0.0000000 ## 16 0.0000000 0.0000000 0.0000000 0.4923660 0.0000000 0.0000000 0.0000000 ## 17 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3651484 ## 18 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 19 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2540003 0.4016097 ## 20 0.0000000 0.0000000 0.0000000 0.3592106 0.0000000 0.0000000 0.0000000 ## Juncarti Juncbufo Lolipere Planlanc Poaprat Poatriv Ranuflam ## 1 0.0000000 0.0000000 0.6236096 0.0000000 0.4714045 0.3333333 0.0000000 ## 2 0.0000000 0.0000000 0.3450328 0.0000000 0.3086067 0.4082483 0.0000000 ## 3 0.0000000 0.0000000 0.3872983 0.0000000 0.3535534 0.3872983 0.0000000 ## 4 0.0000000 0.0000000 0.3333333 0.0000000 0.2981424 0.3333333 0.0000000 ## 5 0.0000000 0.0000000 0.2156655 0.3409972 0.2156655 0.3735437 0.0000000 ## 6 0.0000000 0.0000000 0.3535534 0.3227486 0.2500000 0.2886751 0.0000000 ## 7 0.0000000 0.2236068 0.3872983 0.3535534 0.3162278 0.3535534 0.0000000 ## 8 0.3162278 0.0000000 0.3162278 0.0000000 0.3162278 0.3162278 0.2236068 ## 9 0.3086067 0.3086067 0.2182179 0.0000000 0.3086067 0.3450328 0.0000000 ## 10 0.0000000 0.0000000 0.3735437 0.2641353 0.3049971 0.3049971 0.0000000 ## 11 0.0000000 0.0000000 0.4677072 0.3061862 0.3535534 0.0000000 0.0000000 ## 12 0.0000000 0.3380617 0.0000000 0.0000000 0.0000000 0.3380617 0.0000000 ## 13 0.0000000 0.3015113 0.0000000 0.0000000 0.2461830 0.5222330 0.2461830 ## 14 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2886751 ## 15 0.3611576 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.2948839 ## 16 0.3015113 0.0000000 0.0000000 0.0000000 0.0000000 0.2461830 0.2461830 ## 17 0.0000000 0.0000000 0.0000000 0.3651484 0.2581989 0.0000000 0.0000000 ## 18 0.0000000 0.0000000 0.2721655 0.3333333 0.3333333 0.0000000 0.0000000 ## 19 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 20 0.3592106 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.3592106 ## Rumeacet Sagiproc Salirepe Scorautu Trifprat Trifrepe Vicilath ## 1 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 2 0.0000000 0.0000000 0.0000000 0.3450328 0.0000000 0.3450328 0.0000000 ## 3 0.0000000 0.0000000 0.0000000 0.2236068 0.0000000 0.2236068 0.0000000 ## 4 0.0000000 0.3333333 0.0000000 0.2108185 0.0000000 0.1490712 0.0000000 ## 5 0.3409972 0.0000000 0.0000000 0.2641353 0.2156655 0.2156655 0.0000000 ## 6 0.3535534 0.0000000 0.0000000 0.2500000 0.3227486 0.3227486 0.0000000 ## 7 0.2738613 0.0000000 0.0000000 0.2738613 0.2236068 0.2236068 0.0000000 ## 8 0.0000000 0.2236068 0.0000000 0.2738613 0.0000000 0.2236068 0.0000000 ## 9 0.2182179 0.2182179 0.0000000 0.2182179 0.0000000 0.2672612 0.0000000 ## 10 0.0000000 0.0000000 0.0000000 0.2641353 0.0000000 0.3735437 0.1524986 ## 11 0.0000000 0.2500000 0.0000000 0.3952847 0.0000000 0.3061862 0.2500000 ## 12 0.2390457 0.3380617 0.0000000 0.2390457 0.0000000 0.2927700 0.0000000 ## 13 0.0000000 0.2461830 0.0000000 0.2461830 0.0000000 0.2461830 0.0000000 ## 14 0.0000000 0.0000000 0.0000000 0.2886751 0.0000000 0.5000000 0.0000000 ## 15 0.0000000 0.0000000 0.0000000 0.2948839 0.0000000 0.2085144 0.0000000 ## 16 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ## 17 0.0000000 0.0000000 0.0000000 0.3651484 0.0000000 0.0000000 0.0000000 ## 18 0.0000000 0.0000000 0.3333333 0.4303315 0.0000000 0.2721655 0.1924501 ## 19 0.0000000 0.3110855 0.3110855 0.4399413 0.0000000 0.2540003 0.0000000 ## 20 0.0000000 0.0000000 0.4016097 0.2540003 0.0000000 0.0000000 0.0000000 ## Bracruta Callcusp ## 1 0.0000000 0.0000000 ## 2 0.0000000 0.0000000 ## 3 0.2236068 0.0000000 ## 4 0.2108185 0.0000000 ## 5 0.2156655 0.0000000 ## 6 0.3535534 0.0000000 ## 7 0.2236068 0.0000000 ## 8 0.2236068 0.0000000 ## 9 0.2182179 0.0000000 ## 10 0.2156655 0.0000000 ## 11 0.3535534 0.0000000 ## 12 0.3380617 0.0000000 ## 13 0.0000000 0.0000000 ## 14 0.0000000 0.4082483 ## 15 0.4170288 0.0000000 ## 16 0.3481553 0.3015113 ## 17 0.0000000 0.0000000 ## 18 0.4714045 0.0000000 ## 19 0.3110855 0.0000000 ## 20 0.3592106 0.3110855 ``` --- background-image: url(img/code_camel_case.png) background-size: 350px background-position: 90% 90% # 12. Principais erros ## 5. Usar o nome da função de forma errônea ```r colsums(dune) ``` ``` ## Error in colsums(dune): could not find function "colsums" ``` --- background-image: url(img/code_camel_case.png) background-size: 350px background-position: 90% 90% # 12. Principais erros ## 5. Usar o nome da função de forma errônea ```r colSums(dune) ``` ``` ## Achimill Agrostol Airaprae Alopgeni Anthodor Bellpere Bromhord Chenalbu ## 16 48 5 36 21 13 15 1 ## Cirsarve Comapalu Eleopalu Elymrepe Empenigr Hyporadi Juncarti Juncbufo ## 2 4 25 26 2 9 18 13 ## Lolipere Planlanc Poaprat Poatriv Ranuflam Rumeacet Sagiproc Salirepe ## 58 26 48 63 14 18 20 11 ## Scorautu Trifprat Trifrepe Vicilath Bracruta Callcusp ## 54 9 47 4 49 10 ``` --- background-image: url(img/code_coding_cases.png) background-size: 700px background-position: 50% 40% # 12. Principais erros ## Cases <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [@allison_horst](https://twitter.com/allison_horst) --- # 12. Principais erros ## 6. Atentar para o diretório correto ```r # listar os arquivos do diretorio definido dir()[1:4] ``` ``` ## [1] "00_slides_intro_geoespacial_r.html" "00_slides_intro_geoespacial_r.pdf" ## [3] "00_slides_intro_geoespacial_r.Rmd" "01_slides_intro_geoespacial_r.html" ``` ```r # listar os arquivos do diretorio definido list.files()[1:4] ``` ``` ## [1] "00_slides_intro_geoespacial_r.html" "00_slides_intro_geoespacial_r.pdf" ## [3] "00_slides_intro_geoespacial_r.Rmd" "01_slides_intro_geoespacial_r.html" ``` ```r # listar os arquivos do diretorio definido por um padrão dir(pattern = ".Rmd") ``` ``` ## [1] "00_slides_intro_geoespacial_r.Rmd" "01_slides_intro_geoespacial_r.Rmd" ## [3] "02_slides_intro_geoespacial_r.Rmd" "03_slides_intro_geoespacial_r.Rmd" ## [5] "04_slides_intro_geoespacial_r.Rmd" "05_slides_intro_geoespacial_r.Rmd" ## [7] "06_slides_intro_geoespacial_r.Rmd" "07_slides_intro_geoespacial_r.Rmd" ## [9] "08_slides_intro_geoespacial_r.Rmd" "09_slides_intro_geoespacial_r.Rmd" ``` --- background-image: url(img/cover_ciencias_dados_r.jpg) background-size: 300px background-position: 50% 50% # 13. Principal material de estudo ## Ciência de Dados com R: introdução (2018) <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Guerra et al. (2020)](https://cdr.ibpad.com.br/index.html) --- background-image: url(img/cover_data_science_r.png) background-size: 300px background-position: 50% 55% # 13. Principal material de estudo ## R for Data Science (2017) <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Wickham & Grolemund (2017)](https://r4ds.had.co.nz/) --- background-image: url(img/cover_statistical_inference.png) background-size: 300px background-position: 50% 55% # 13. Principal material de estudo ## Statistical Inference via Data Science (2019) <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Ismay & Kim (2019)](https://moderndive.com) --- background-image: url(img/cover_rmarkdown.png) background-size: 280px background-position: 50% 50% # 13. Principal material de estudo ## R Markdown: The Definitive Guide (2018) <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Xie et al. (2019)](https://bookdown.org/yihui/rmarkdown/) --- background-image: url(img/cover_rmarkdown_cookbook.png) background-size: 280px background-position: 50% 50% # 13. Principal material de estudo ## R Markdown Cookbook (2021) <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Xie et al. (2021)](https://bookdown.org/yihui/rmarkdown-cookbook/) --- background-image: url(img/cover_geocompr.png) background-size: 280px background-position: 50% 50% # 13. Principal material de estudo ## Geocomputation with R (2019) <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> [Lovelace et al. (2019)](https://geocompr.robinlovelace.net/) --- class: inverse, center, middle # Dúvidas? --- class: clear, middle background-image: url(img/gif_frog.gif),url(img/gif_frogs.gif), url(img/package_xaringan.png) background-size: 250px, 500px, 130px background-position: 35% 50%, 90% 55%, 5% 86% ## Maurício Vancine <br><br> Contatos: <svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;fill:#23373b;" xmlns="http://www.w3.org/2000/svg"> <path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg> [mauricio.vancine@gmail.com]() <svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;fill:#23373b;" xmlns="http://www.w3.org/2000/svg"> <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg> [@mauriciovancine](https://twitter.com/mauriciovancine) <svg viewBox="0 0 496 512" style="height:1em;position:relative;display:inline-block;top:.1em;fill:#23373b;" xmlns="http://www.w3.org/2000/svg"> <path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg> [mauriciovancine](https://github.com/mauriciovancine) <svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;fill:#23373b;" xmlns="http://www.w3.org/2000/svg"> <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg> [mauriciovancine.github.io](https://mauriciovancine.github.io) <br><br><br><br><br> Slides criados via pacote [xaringan](https://github.com/yihui/xaringan) e tema [Metropolis](https://github.com/pat-s/xaringan-metropolis). Animação dos sapos por [@probzz](https://twitter.com/probzz/status/1367613720294170627).