Grupo de Estudos em R e Estatística (GERE)

Cap. 04 - Introdução ao R

5 de maio de 2023

Grupo de Estudos em R e Estatística (GERE)

Objetivos

  • Difusão e capacitação no uso da linguagem R e sua aplicação em abordagem quantitativas e estatísticas

  • Conformidade com o Art. 2º da Portaria UNESP 69/2022 (Ligas acadêmicas)

  • Aprimorar a formação técnico-científica e humanística dos graduandos e pós-graduandos

  • Fomentar um espaço de convivência e aprendizado entre os membros da comunidade unespiana

Grupo de Estudos em R e Estatística (GERE)

Funcionamento: Estatuto e Plano Acadêmico

  • 8 horas/mês com presença mínima de 75% (sujeito à sanções, exceto em casos de falta justificada e aprovada pelo comitê)

  • Comitê gestor democraticamente eleito por Assembleia Geral e sujeito à avaliações periódicas

  • É um dever dos associados a conduta ética e pró-ativa, que preserve a respeitabilidade da liga e promova seus objetivos

Comunicação

Discord

Vamos concentrar a comunicação pelo Discord


Material

GitHub

Todo o material está e estará disponível no GitHub

Proposta

Análises Ecológicas no R

Princípios de Estatística em Ecologia

  1. Introdução à probabilidade
  2. Variáveis aleatórias e distribuição de probabilidade
  3. Estatística descritiva
  4. Formulando e testando hipóteses
  5. Três estruturas para análises estatísticas
  6. Delineando estudos de campo com sucesso
  7. Um bestiário de delineamento
  8. Gestão e curadoria de dados
  9. Regressão
  10. Análise de variância
  11. Análise de dados categóricos
  12. Análise de dados multivariados

IMPORTANTE!!!

Estamos num espaço seguro e amigável

Sintam-se à vontade para me interromper e tirar dúvidas

Linguagem R

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 dados ou análises específicas

Histórico - Linguagem S

John M. Chambers (Stanford University, CA, EUA)


Versões

  • Old S (1976-1987)
  • New S (1988-1997)
  • S4 (1998)

IDE (Integrated Development Environment)

  • Interface: S-PLUS (1988-2008)

Histórico - Linguagem R

Robert Gentleman e Ross Ihaka (Auckland University, NZ)


Versões

  • Desenvolvimento (1993-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

Histórico - Linguagem R

Aplicações

Manipulação, visualização e análise de dados

  • Estatísticas univariadas e multivariadas
  • Análises de dados ecológicos
  • 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 remoto
  • Visualização de todos os tipos de dados anteriores

R Markdown e quarto

  • Textos em HTML, PDF, Word, ODT, Markdown
  • Slides, Websites, Blogs, Livros e Artigos
  • Shiny

IDE

Ambiente de Desenvolvimento Integrado (Integrated Development Environment)



IDE

Ambiente de Desenvolvimento Integrado (Integrated Development Environment)

Interface

Projeto R (.Rproj)

  • Facilita o trabalho em múltiplos ambientes
  • Cada projeto possui seu diretório, documentos e workspace
  • Permite controle de versão (git e GitHub)


Antes de começarmos…

Conferindo os computadores

Console

O console é onde a linguagem R instalada é carregada para executar os códigos

Console

  • Na janela do console aparece o símbolo >, seguido de uma barra vertical | que fica piscando (cursor), onde digitamos ou enviamos nossos códigos do script

  • Vamos digitar 10 + 2 e apertar a tecla Enter para que essa operação seja executada

  • O resultado retorna o valor 12, precedido do valor 1 entre colchetes [1]

10 + 2
[1] 12

Console

  • Os colchetes [] demonstram a posição do elemento numa sequência de valores

  • Vamos criar uma sequência usando o operador : para demonstrar isso

  • O número que aparecer nos colchetes vai depender da largura das janelas

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

Console

Noções de programação

Número inteiro (integer)

1
[1] 1

Número decimal (float ou double)

1.2
[1] 1.2

Texto entre aspas simples ('') ou duplas ("") (character ou string)

"Este é o número 1"
[1] "Este é o número 1"

Lógico (letras maiúsculas) (booleano)

TRUE
[1] TRUE
FALSE
[1] FALSE

Script

Onde os códigos são escritos e salvos no formato .R

  • Atalho: ctrl + shift + N

Script

  • Os códigos devem ser digitados preferencialmente no script

  • Para executar um código, deixem o cursor em qualquer lugar da linha

  • Atalho: ctrl + enter

1
[1] 1


1 + 2
[1] 3

Script

Salvar um script

  • Atalho: ctrl + S

Script

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)

# comentarios
# o r nao le o codigo depois do # (hash)

42 # essas palavras nao sao executadas, apenas o 42
[1] 42

Script

Comentários (#)

  • Sempre comece um script com um cabeçalho

  • Ajuda a lembrar o que o script faz e quando foi escrito

#' ----
#' título: modelos estatisticos em ecologia
#' autor: seu nome
#' data: 2023-04-26
#' ----

Operadores

Operadores aritméticos (retorna números)

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

Operadores

Operadores relacionais (retorna TRUE|FALSE)

Operador Descrição Uso
< Menor a < b
> Maior a > b
<= Menor ou igual a <= b
>= Maior ou igual a > = b
== Igual a == b
!= Não igual (diferente) a!=b

Operadores

Ordem das operações aritméticas


() > ^ > * ou / > + ou -


# sem especificar - segue a ordem das operações
1 * 2 + 2 / 2 ^ 2
[1] 2.5


# especificando - segue a ordem dos parênteses
((1 * 2) + (2 / 2)) ^ 2
[1] 9

Objetos

Palavras que atribuímos (guardamos) dados possibilitando sua manipulação

  • Atribuição (<-)

  • palavra <- dados

  • Atalho: alt + -

Objetos

Vamos atribuir o valor 10 à palavra eco

# atribuicao - simbolo (<-)
eco <- 10 

Objetos

  • Sempre confira a atribuição

  • Dica: chame o objeto novamente

# atribuicao - simbolo (<-)
eco <- 10 
eco
[1] 10

Objetos

Seja criativo

O R sobrescreve os valores dos objetos com o mesmo nome

# eco vale 10
eco <- 10 
eco
[1] 10


# agora eco vale 2
eco <- 2 
eco
[1] 2

Objetos

Seja criativo, mas nem tanto…

O R tem limitações ao nomear objetos!

  1. Começar por letras (a-z ou A-Z) ou pontos (.)

  2. Conter letras (a-z ou A-Z), números (0-9), underscores (_) ou pontos (.)

  3. Case-sensitive, i.e., ele difere letras maiúsculas de minúsculas

  4. Evitar utilizar letras maiúsculas, acentos ou cedilha (ç)

  5. Não podem ser iguais a nomes especiais: break, else, FALSE, for, function, if, Inf, NA, NaN, next, repeat, return, TRUE, while

for <- 1
Error: <text>:1:5: unexpected assignment
1: for <-
        ^

Objetos

Ambiente (Environment)

Os objetos podem ser visualizados no painel Environment

Objetos

Podemos utilizar objetos para fazer operações

# definir dois objetos
eco1 <- 10
eco2 <- 2


# operacoes com objetos
eco1 + eco2 # adicao
[1] 12
eco1 - eco2 # subtracao
[1] 8
eco1 * eco2 # multiplicacao
[1] 20
eco1 / eco2 # divisao
[1] 5

Objetos

Podemos utilizar objetos para atribuir resultados de operações

# operacoes com objetos e atribuicao
adi <- eco1 + eco2 # adicao
adi
[1] 12
sub <- eco1 - eco2 # subtracao
sub
[1] 8
mul <- eco1 * eco2 # multiplicacao
mul
[1] 20
div <- eco1 / eco2 # divisao
div
[1] 5

Objetos

Tipos de objetos

Funções

Códigos que realizam operações em argumentos

  • Estrutura de uma função:

nome_da_funcao(argumento1, argumento2)


  1. Nome da função: remete ao que ela faz (inglês)
  2. Parênteses: limitam a função
  3. Argumentos: onde a função atuará
  4. Vírgulas: separam os argumentos

Funções

Exemplos

# soma
sum(10, 2)
[1] 12
# soma de objetos
sum(eco1, eco2)
[1] 12
# soma de objetos atribuidos a objetos
eco_sum <- sum(eco1, eco2)
eco_sum
[1] 12

Funções

Argumentos

Os argumentos podem ser de dois tipos:

  1. Objetos ou valores: dados onde a função irá atuar

  2. Parâmetros: mudam o comportamento da função (texto = TRUE, FALSE ou "texto")

sum(1, 2, 3, NA)
[1] NA
sum(1, 2, 3, NA, na.rm = TRUE)
[1] 6

Funções

Argumentos como valores

# funcoes - argumentos como valores
sum(10, 2)
[1] 12
prod(10, 2)
[1] 20

Argumentos como objetos

# funcoes - argumentos como objetos
sum(eco1, eco2)
[1] 12
prod(eco1, eco2)
[1] 20

Funções

Argumentos como parâmetros

# repeticao - vezes
rep(x = 1:5, times = 5)
 [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


# repeticao - cada
rep(x = 1:5, each = 5)
 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5

Funções

Atribuição de resultados a objetos

# atribuicao dos resultados
rep_times <- rep(x = 1:5, times = 5)
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


rep_each <- rep(x = 1:5, each = 5)
rep_each
 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5

Funções

Atribuição, função e linha temporal

Criar dois objetos

# criar dois objetos
foo <- 2
bar <- 3

Somar esses objetos e atribuição

# somar e atribuir
su <- sum(foo, bar)
su
[1] 5

Raiz quadrada e atribuição

# raiz e atribuir
sq <- sqrt(su)
sq
[1] 2.236068

Funções

Atribuição, função e linha temporal

  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

# criar dois objetos
foo <- 2
bar <- 3

# somar e atribuir
su <- sum(foo, bar)

# raiz e atribuir
sq <- sqrt(su)

Ajuda

Descreve as informações de uma função

# descreve as informacoes de uma funcao
help("mean") # arquivo .html
?mean


Description: descrição da função
Usage: uso da função e argumentos
Arguments: argumentos e suas especificações
Details: detalhes da função
Value: interpretar a saída (output)
Note: notas sobre a função
Authors: autores da função
References: referências bibliográficas da função
See also: funções relacionadas
Examples: exemplos do uso da função

Pacotes

Conjunto de funções extras para executar tarefas específicas

Pacotes

Duas fontes

  • CRAN (Comprehensive R Archive Network)
  • GitHub (Repositório de códigos)
# numero de pacotes no cran
nrow(available.packages())

Pacotes

Instalação de pacotes

  1. Download do pacote para o computador (como instalar um software/APP)
  2. Precisa estar conectado à internet
  3. O nome do pacote precisa estar entre aspas
  4. Função (CRAN): install.packages("pacote")

Instalar o pacote vegan

# instalar pacotes
install.packages("vegan")

Verificar pacotes instalados

# verificar pacotes instalados
library()

Pacotes

Carregamento de pacotes

  1. Carregar o pacote para o R (como abrir software/APP)
  2. Carrega-se toda vez que se abre o R
  3. Não precisa estar conectado à internet
  4. O nome do pacote não precisa estar entre aspas
  5. Funções: library(pacote) ou require(pacote)

Carregar o pacote vegan

# carregar pacotes
library(vegan)

Verificar pacotes carregados

# verificar pacotes carregados
search()
 [1] ".GlobalEnv"        "package:vegan"     "package:lattice"  
 [4] "package:permute"   "package:stats"     "package:graphics" 
 [7] "package:grDevices" "package:utils"     "package:datasets" 
[10] "package:methods"   "Autoloads"         "package:base"     

Principais erros

Se seu script rodou sem erros, tem algo errado…

Help me help you: um bestiário para entender erros e pedir ajuda no R

Principais erros

1. Esquecer de completar um código (+)

Parênteses

sum(1, 2
    +
Error: <text>:3:0: unexpected end of input
1: sum(1, 2
2:     +
  ^

Aspas

"string
+
Error: <text>:1:1: unexpected INCOMPLETE_STRING
1: "string
2: +
   ^

Principais erros

2. Esquecer da vírgula

sum(1 2)
Error: <text>:1:7: unexpected numeric constant
1: sum(1 2
          ^


3. Chamar um objeto errado

obj <- 10
OBJ
Error in eval(expr, envir, enclos): object 'OBJ' not found

Principais erros

4. Esquecer de carregar um pacote

# carregar dados
data(dune)

# funcao do pacote vegan
decostand(dune, "hell")
Error in decostand(dune, "hell"): could not find function "decostand"

Principais erros

4. Esquecer de carregar um pacote

# 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

Principais erros

5. Usar o nome da função de forma errônea

colsums(dune)
Error in colsums(dune): could not find function "colsums"


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 

Dúvidas?

Desafio 02

  1. crie um objeto chamado “parcelas” de modo que ele seja: “parcela1, parcela2, parcela3, ….., parcela 1000”. Use a função “paste0()”
  2. crie um objeto chamado “cont_trat” sendo composto por 4000 “controle” e 4000 “tratamento”. Use a função “rep()”
  3. crie um objeto chamado “presenca_ausencia” sendo composto por números aleatórios de 0 e 1, com comprimento 8000 elementos. Use a função “sample()”
  4. crie um objeto chamado “abundacia” sendo composto por números aleatórios entre 0 a 100, com comprimento 8000 elementos. Use a função “sample()”

Valeu gente!