Curso R

Ecologia

Alexandre Adalardo de Oliveira

IBUSP maio 2019

Introdução ao R


DISCIPLINA


ESTRUTURA BÁSICA DA LINGUAGEM

DISCIPLINA

Tópicos

  • Histórico e Motivação
  • Estrutura e Funcionamento
    • Instrumental:
      • wiki
      • fórum
      • notaR
    • Atividades:
      • aulas expositiva
      • tutorial
      • exercícios
      • apostila
      • trabalho final
    • Avaliação

Histórico e Motivação

ale PI PI PI

  • Alexandre Adalardo (IB -USP)
  • Paulo Inácio (IB - USP)
  • João Ferreira (ESALQ - USP)
  • Rodrigo Perreira (FFCLRP- USP)

Motivação

Motivação

Ferramental analítico integrado

  • modular
  • código aberto
  • projeto colaborativo (~ 12,4 mil pacotes)
  • linguagem de alto nível
  • pressupõem conhecimento analítico

Criatividade

Disciplina

Equipe Curso 2019

  • Alexandre Adalardo de Oliveira
  • Andre Chalom (notaR)*
  • Danilo Muniz
  • Melina Leite *
  • Bruno Travassos

Monitores

  • Bruna Cassettari
  • Débora Brandt
  • Diogo Melo
  • Eduarda Romanini
  • Felipe Campos
  • Gustavo Ballen
  • Jennifer Auler
  • Julia Barreto
  • Lucas Nascimento

Ferramental

EcoR Wiki

http://ecologia.ib.usp.br/bie5782

EcoR

NotaR

http://www.lage.ib.usp.br/rserve

notaR

Forum Nabble

http://bie5782.138098.n3.nabble.com

foRum

Tópicos abordados

Primeira Semana

  • Funções Matemáticas
  • Leitura e Manipulação de dados
  • Análise exploratória

Segunda Semana

  • Gráficos
  • Testes de significância
  • Regressão linear simples

Terceira Semana

  • Regressão linear múltipla
  • Reamostragem e simulação
  • Construção de funções simples

Dinâmica

  • Aulas expositivas
  • Tutoriais monitorados
  • Exercícios
  • Atendimento online (fórum)
  • Apostila


http://ecologia.ib.usp.br/bie5782

Avaliação


  • Exercícios (30%) + trabalho final (70%)
  • Exercícios: \(\bar{x}_{n-1}\)
    • menos a menor nota


Conceito Final

Media Conceito
>= 8 A
6,5-7,9 B
5,0-6,4 C
<5 R

Introdução à Linguagem

Estrutura básica do R:

  • Histórico
  • Mapa da plataforma
  • Sintaxe dos comandos
  • Obtendo ajuda
  • Orientação a objeto
  • Organizando e gravando seu trabalho no R
  • Manipulações básicas de objetos
  • Criação de objetos simples e suas classes

Histórico

Ambiente de Programação

Estrutura do Ambiente

  • define uma lógica de organização do usuário

Diretório de trabalho

Ambiente de programação R

Estrutura Básica da Linguagem

Sintaxe Básica

função(argumento1 = valor, argumento2 = valor, …)

Ajuda sobre as funções

  • Texto de Ajuda
  • Hipertexto de Ajuda

De onde vem as funções?

foRum

Quais pacotes estão ativos?

##  [1] ".GlobalEnv"        "package:MASS"      "package:knitr"    
##  [4] "package:rmarkdown" "ESSR"              "package:stats"    
##  [7] "package:graphics"  "package:grDevices" "package:utils"    
## [10] "package:datasets"  "package:methods"   "Autoloads"        
## [13] "package:base"

Quais pacotes eu tenho instalado?

Como carregar o pacote?

## [1] ".GlobalEnv"        "package:MASS"      "package:knitr"    
## [4] "package:rmarkdown" "ESSR"              "package:stats"    
## [7] "package:graphics"  "package:grDevices" "package:utils"

Instalando pacotes

  • tarefa a ser realizada
  • qual pacote faz

Lista de Pacotes

foRum

Lista de Pacotes

foRum

Instalando pacotes

install.packages(“nome do pacote”)

Instalando pacotes

install.packages(“nome do pacote”)

foRum

Carregando pacote

Operadores

objeto <- expressão

## [1] 303

objeto = expressão

## [1] 379

expressão -> objeto (pouco usual)

## [1] 961

Erros comuns

Erros comuns

## function (topic, package = NULL, lib.loc = NULL, verbose = getOption("verbose"), 
##     try.all.packages = getOption("help.try.all.packages"), help_type = getOption("help_type")) 
## {
##     types <- c("text", "html", "pdf")
##     help_type <- if (!length(help_type)) 
##         "text"
##     else match.arg(tolower(help_type), types)
##     if (!missing(package)) 
##         if (is.name(y <- substitute(package))) 
##             package <- as.character(y)
##     if (missing(topic)) {
##         if (!is.null(package)) {
##             if (interactive() && help_type == "html") {
##                 port <- tools::startDynamicHelp(NA)
##                 if (port <= 0L) 
##                   return(library(help = package, lib.loc = lib.loc, 
##                     character.only = TRUE))
##                 browser <- if (.Platform$GUI == "AQUA") {
##                   get("aqua.browser", envir = as.environment("tools:RGUI"))
##                 }
##                 else getOption("browser")
##                 browseURL(paste0("http://127.0.0.1:", port, "/library/", 
##                   package, "/html/00Index.html"), browser)
##                 return(invisible())
##             }
##             else return(library(help = package, lib.loc = lib.loc, 
##                 character.only = TRUE))
##         }
##         if (!is.null(lib.loc)) 
##             return(library(lib.loc = lib.loc))
##         topic <- "help"
##         package <- "utils"
##         lib.loc <- .Library
##     }
##     ischar <- tryCatch(is.character(topic) && length(topic) == 
##         1L, error = function(e) FALSE)
##     if (!ischar) {
##         reserved <- c("TRUE", "FALSE", "NULL", "Inf", "NaN", 
##             "NA", "NA_integer_", "NA_real_", "NA_complex_", "NA_character_")
##         stopic <- deparse(substitute(topic))
##         if (!is.name(substitute(topic)) && !stopic %in% reserved) 
##             stop("'topic' should be a name, length-one character vector or reserved word")
##         topic <- stopic
##     }
##     paths <- index.search(topic, find.package(if (is.null(package)) 
##         loadedNamespaces()
##     else package, lib.loc, verbose = verbose))
##     try.all.packages <- !length(paths) && is.logical(try.all.packages) && 
##         !is.na(try.all.packages) && try.all.packages && is.null(package) && 
##         is.null(lib.loc)
##     if (try.all.packages) {
##         for (lib in .libPaths()) {
##             packages <- .packages(TRUE, lib)
##             packages <- packages[is.na(match(packages, .packages()))]
##             paths <- c(paths, index.search(topic, file.path(lib, 
##                 packages)))
##         }
##         paths <- paths[nzchar(paths)]
##     }
##     structure(unique(paths), call = match.call(), topic = topic, 
##         tried_all_packages = try.all.packages, type = help_type, 
##         class = "help_files_with_topic")
## }
## <bytecode: 0x55f2525e6338>
## <environment: namespace:utils>

Erros comuns

  • caracteres e palavras devem estar contido entre aspas
  • palavra sem aspas significa o nome do objeto
  • o nome de uma função sem parênteses retorna o código da função

10 Mandamentos

10 Mandamentos

Liguagem orientada a objetos

##  [1]  303  379  961  295  332   47  122   11   53 2749
## [1] "numeric"
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   11.00   70.25  299.00  525.20  367.25 2749.00

Liguagem orientada a objetos

## [1] "lm"
## 
## Call:
## lm(formula = riqueza ~ area)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.4614 -2.1245 -0.5101  1.4862  7.6863 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 5.226994   1.352158   3.866 0.004770 ** 
## area        0.007374   0.001431   5.155 0.000869 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.555 on 8 degrees of freedom
## Multiple R-squared:  0.7686, Adjusted R-squared:  0.7397 
## F-statistic: 26.57 on 1 and 8 DF,  p-value: 0.0008693