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

Introdução a Métodos Computacionais para Ciência Sociais

Tiago Ventura

CPDOC-FGV

1 / 52

Introdução ao R: Parte I

2 / 52

Logística: Exercícios.

3 / 52

Logística: Exercícios.

1 - Exercícios todas as semanas (até a semana 8)

3 / 52

Logística: Exercícios.

1 - Exercícios todas as semanas (até a semana 8)

2 - Entrega via Slack.

3 / 52

Logística: Exercícios.

1 - Exercícios todas as semanas (até a semana 8)

2 - Entrega via Slack.

3 - Regras para entrega atrasada: perde um ponto por dia de atraso.

3 / 52

Logística: Exercícios.

1 - Exercícios todas as semanas (até a semana 8)

2 - Entrega via Slack.

3 - Regras para entrega atrasada: perde um ponto por dia de atraso.

4 -40% da Nota Final vem destes exercícios.

3 / 52

Logística: Exercícios.

1 - Exercícios todas as semanas (até a semana 8)

2 - Entrega via Slack.

3 - Regras para entrega atrasada: perde um ponto por dia de atraso.

4 -40% da Nota Final vem destes exercícios.

3 / 52

Logística II: Como acompanhar as aulas de programação?

4 / 52

Logística II: Como acompanhar as aulas de programação?

  1. Leia os tutoriais.
4 / 52

Logística II: Como acompanhar as aulas de programação?

  1. Leia os tutoriais.

  2. Abra o RStudio e pratique com os códigos dos tutoriais.

4 / 52

Logística II: Como acompanhar as aulas de programação?

  1. Leia os tutoriais.

  2. Abra o RStudio e pratique com os códigos dos tutoriais.

  3. Pratique com as leituras indicadas e exercícios.

4 / 52

Logística II: Como acompanhar as aulas de programação?

  1. Leia os tutoriais.

  2. Abra o RStudio e pratique com os códigos dos tutoriais.

  3. Pratique com as leituras indicadas e exercícios.

4 / 52

Tópicos de Hoje

  1. Workflow: RStudio e Scripts.

  2. Como Interagir com R.

  3. Pacotes em R.

  4. Ajuda em R.

  5. Objetos e Classes

  6. Operadores Booleanos

  7. Estrutura de Dados

  8. Manipulação Básica de Dados.

  9. Exportar e Importar Bancos de Dados.

5 / 52

O que é o R? Ou porquê o R?

  • Software de código aberto.

  • Superior (se não apenas comparável) às alternativas comerciais.

  • Disponível em todas as plataformas (Unix, Windows, Linux).

  • Como resultado de ser uma linguagem de dados aberta, se você fizer sua análise em R, qualquer pessoa poderá replicá-la facilmente.

  • Não apenas para estatística, mas também programação de uso geral.

6 / 52

RStudio.

O RStudio é a principal interface gráfica do usuário (GUI) e o ambiente de desenvolvimento integrado (IDE) que facilita o uso do R.

Fonte para figura: Rochele Terman's Intro to CSS Book

7 / 52

Navegando no R Studio

8 / 52

Como Interagir com R

9 / 52

R Via Console (Tela Inferior Esquerda)

o prompt > aparece um símbolo maior que. Copie e cole o código abaixo em seu Console e click Enter.

2+2
## [1] 4

R usa + quando o código é dividido em várias linhas e R ainda espera mais código.

# Este Código Retornará um +
incompleto <- "Eu sou um objeto incompleto

Uma linha de código geralmente não termina até que R encontre um parâmetro ou pontuação de parada apropriado que conclua algum código, como parêntese fechado fechado ), colchete ], colchete } ou aspas `

10 / 52

R Via Script (Tela Superior Esquerda)

Abrir um script novo clicando na aba File -> New File -> R Script

O Script envia código diretamente para o console.

11 / 52

R Via Script (Tela Superior Esquerda)

Abrir um script novo clicando na aba File -> New File -> R Script

O Script envia código diretamente para o console.

command + enter (Mac) ou Ctrl + enter (PC) com o cursor na linha para rodar o script.

11 / 52

R Via Script (Tela Superior Esquerda)

Abrir um script novo clicando na aba File -> New File -> R Script

O Script envia código diretamente para o console.

command + enter (Mac) ou Ctrl + enter (PC) com o cursor na linha para rodar o script.

# Rode estas operação em um script.
# Hashtags permite você comentar seu código.
2^2
2*2
2/2
11 / 52

Pacotes

12 / 52

O que são pacotes?

13 / 52

O que são pacotes?

  • Um conjunto de funções organizadas em torno de um tema.
13 / 52

O que são pacotes?

  • Um conjunto de funções organizadas em torno de um tema.

  • As vezes provêm dados.

13 / 52

O que são pacotes?

  • Um conjunto de funções organizadas em torno de um tema.

  • As vezes provêm dados.

  • Uma pasta em seu computador.

13 / 52

O que são pacotes?

  • Um conjunto de funções organizadas em torno de um tema.

  • As vezes provêm dados.

  • Uma pasta em seu computador.

  • Um sinal de bondade de outros programadores.

13 / 52

O que são pacotes?

  • Um conjunto de funções organizadas em torno de um tema.

  • As vezes provêm dados.

  • Uma pasta em seu computador.

  • Um sinal de bondade de outros programadores.

  • São instalados apenas uma vez:

    install.packages()

13 / 52

O que são pacotes?

  • Um conjunto de funções organizadas em torno de um tema.

  • As vezes provêm dados.

  • Uma pasta em seu computador.

  • Um sinal de bondade de outros programadores.

  • São instalados apenas uma vez:

    install.packages()

  • Ativados em toda sessão de R:

    library()

13 / 52

Instalar Pacotes Via Cran.

install.packages("devtools", force=TRUE)

Ativar um pacote.

library(devtools)

Instalar Pacotes Via Github.

install_github("silvadenisson/electionsBR")
14 / 52

Funções de Ajuda.

15 / 52

Pedindo ajuda via R

# Ajuda específica.
?mean # Help para a função mean.
help(mean)
# Ajuda mais geral: busca todas as ocorrências do nome da função.
??mean

16 / 52

Pedindo ajuda via Google.

  • Google: nome do função/pacote + texto na mensagem de erro.

  • Remova as informações específicas do usuário e dos dados primeiro!

  • Veja se você consegue encontrar exemplos que produzem e não produzem o erro. Experimente o código de outras pessoas, mas tente entendê-los. Não copie e cole.

  • Tende entender a solução. Copiar e Colar não resolver seu problema.

17 / 52

A Regra dos 15 minutos

Retirado de Rochele Terman plsc-31101.

18 / 52

Objetos em R.

19 / 52

O que são objetos ?

Peça base do R. Objetos são criados atribuindo determinado dado a um determinado nome, e você pode acessá-los exatamente por nome atribuído.

Tudo que existe no R é um objeto.

20 / 52

Criando Objetos

(assignment operator) <-

# Variáveis Numéricas
x <- 5
y <- 7
# Variáveis de Texto.
nome <- "Tiago Ventura"
21 / 52

Posso usar o = para criar objetos?

22 / 52

Posso usar o = para criar objetos?

Sim. Mas...

22 / 52

Posso usar o = para criar objetos?

Sim. Mas...

22 / 52

Posso usar o = para criar objetos?

Sim. Mas...

Qual o valor de x agora?

mean(x=c(5, 7))
22 / 52

Outros Comandos Importantes

Verificar Ambiente de Trabalho

ls()
## [1] "nome" "x" "y"

Remover Objetos

rm(y)

Visualizando objetos.

print(nome)
## [1] "Tiago Ventura"

Modificando objetos.

nome <- "Tiago Augusto Ventura"
23 / 52

Classes de Objetos

24 / 52

Classes em R

Casa objeto em R possui uma Classe. Em síntese, a classe descreve qual tipo de valores esse objeto está armazenando. Principais classes:

  • Character

  • Numeric

  • Interger

  • Logical

25 / 52

Resumo

Example Tipo
a , swc Character
2, 3, 15 Numeric
1, 2 Interger
FALSE, TRUE Logical
26 / 52

Descobrindo as Classes dos meus objetos.

class()

class(3)
## [1] "numeric"
class(TRUE)
## [1] "logical"
meu_numero_da_sorte= "13"
class(meu_numero_da_sorte)
## [1] "character"
class(meu_numero_da_sorte==13)
## [1] "logical"
27 / 52

Outra forma: is.class?

is.numeric(2)
## [1] TRUE
is.logical(TRUE)
## [1] TRUE
is.character("2")
## [1] TRUE
is.integer(1L)
## [1] TRUE
28 / 52

Coerção: Alterando Classes.

Classes de objetos em R também podem ser alteradas usando as funções as.class()

# Cria Objeto
num_1_5 <- c(1, 2, 3, 4, 5)
# Altera a classe
char_1_5 <- as.character(num_1_5)
# Checando
class(char_1_5)
## [1] "character"
class(num_1_5)
## [1] "numeric"
# Ou
as.numeric("25")
## [1] 25
29 / 52

Desafio 1.

Vamos praticar um pouco o que aprendemos até aqui. O que os comandos abaixo retornarão? Qual o resultado e porquê?

Questão 1:

install.packages(tidyverse)

Questão 2:

false <- "FALSE"
false <- as.logical(false)
class(false)

Questão 3

mean(x = sample(1:50, 5)) == mean(x) # TRUE ou FALSE
<div class="countdown" id="timer_611c3e06" style="top:0;right:0;margin:5%;padding:10px;font-size:3em;" data-warnwhen="0">
<code class="countdown-time"><span class="countdown-digits minutes">05</span><span class="countdown-digits colon">:</span><span class="countdown-digits seconds">00</span></code>
</div>
30 / 52

Intervalo

<div class="countdown" id="timer_611c3f29" style="right:25%;bottom:15%;margin:5%;font-size:5em;" data-warnwhen="0">
<code class="countdown-time"><span class="countdown-digits minutes">10</span><span class="countdown-digits colon">:</span><span class="countdown-digits seconds">00</span></code>
</div>
31 / 52

Estrutura de Dados

32 / 52

Vector

# vetor de números
X <- c(1, 2.3, 4, 5, 6.78, 6:10)
X
## [1] 1.00 2.30 4.00 5.00 6.78 6.00 7.00 8.00 9.00 10.00
# Class
class(X)
## [1] "numeric"
# Tamanho
length(X)
## [1] 10
33 / 52

Matrix

Principal característica: Retangular e Números.

# Coerce to a matrix
as.matrix(X)
## [,1]
## [1,] 1.00
## [2,] 2.30
## [3,] 4.00
## [4,] 5.00
## [5,] 6.78
## [6,] 6.00
## [7,] 7.00
## [8,] 8.00
## [9,] 9.00
## [10,] 10.00
# Cria uma Matrix do zero
matrix(1:10, nrow=5, ncol=2)
## [,1] [,2]
## [1,] 1 6
## [2,] 2 7
## [3,] 3 8
## [4,] 4 9
## [5,] 5 10
34 / 52

List

Principal Característica: Tudo cabe dentro de uma lista e Iterável.

# coerce to a list
as.list(X)
## [[1]]
## [1] 1
##
## [[2]]
## [1] 2.3
##
## [[3]]
## [1] 4
##
## [[4]]
## [1] 5
##
## [[5]]
## [1] 6.78
##
## [[6]]
## [1] 6
##
## [[7]]
## [1] 7
##
## [[8]]
## [1] 8
##
## [[9]]
## [1] 9
##
## [[10]]
## [1] 10
# or
lista_1 <- list(X, as.matrix(X), as.character(X))
# Visualize a lista.
str(list)
## function (...)
35 / 52

Data Frame.

  1. Banco de dados.

  2. Dados retangular.

  3. Comporta colunas de classes diferentes.

  4. É um planilha de excel no seu ambiente R.

  5. Class básica do R, diferente de outras linguagens.

36 / 52

Criando um banco de dados.

# Coercing
as.data.frame(X)
## X
## 1 1.00
## 2 2.30
## 3 4.00
## 4 5.00
## 5 6.78
## 6 6.00
## 7 7.00
## 8 8.00
## 9 9.00
## 10 10.00
# Criando Manualmente
data <- data.frame(name=c("Tiago", "Tiago"),
last_name=c("Ventura", "Ventura") ,
school=c("UMD", "FGV"), age=c(30,32))
data
## name last_name school age
## 1 Tiago Ventura UMD 30
## 2 Tiago Ventura FGV 32
37 / 52

Bancos de Dados Pré-Construídos.

#devtools::install_github("apreshill/bakeoff")
library(bakeoff) # Chamando o pacote
# O que tenho no meu ambiente?
ls()
## [1] "char_1_5" "data" "lista_1"
## [4] "meu_numero_da_sorte" "nome" "num_1_5"
## [7] "x" "X"
# ativa o banco de dados
data("bakers")
ls()
## [1] "bakers" "char_1_5" "data"
## [4] "lista_1" "meu_numero_da_sorte" "nome"
## [7] "num_1_5" "x" "X"
# Examine o objeto.
class(bakers)
## [1] "tbl_df" "tbl" "data.frame"
str(bakers)
## tibble[,8] [120 × 8] (S3: tbl_df/tbl/data.frame)
## $ series : Factor w/ 10 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ baker_full : chr [1:120] "Annetha Mills" "David Chambers" "Edward \"Edd\" Kimber" "Jasminder Randhawa" ...
## $ baker : chr [1:120] "Annetha" "David" "Edd" "Jasminder" ...
## $ age : num [1:120] 30 31 24 45 25 51 44 48 37 31 ...
## $ occupation : chr [1:120] "Midwife" "Entrepreneur" "Debt collector for Yorkshire Bank" "Assistant Credit Control Manager" ...
## $ hometown : chr [1:120] "Essex" "Milton Keynes" "Bradford" "Birmingham" ...
## $ baker_last : chr [1:120] "Mills" "Chambers" "Kimber" "Randhawa" ...
## $ baker_first: chr [1:120] "Annetha" "David" "Edward" "Jasminder" ...
38 / 52

Acessando dados em um Data Frame

Pela Ordem da Coluna

bakers[,1] # primeira coluna
## # A tibble: 120 x 1
## series
## <fct>
## 1 1
## 2 1
## 3 1
## 4 1
## 5 1
## 6 1
## 7 1
## 8 1
## 9 1
## 10 1
## # … with 110 more rows
39 / 52

Pela Nome da Coluna

bakers$age
## [1] 30 31 24 45 25 51 44 48 37 31 31 31 40 63 19 41 31 45 25 31 40 43 63 27 45
## [26] 21 22 27 36 43 38 28 26 50 25 31 66 51 31 37 51 30 38 37 54 20 30 35 31 69
## [51] 39 31 32 41 42 17 60 66 38 37 53 19 41 66 37 30 49 49 35 29 32 25 23 31 61
## [76] 37 67 46 20 28 30 26 66 50 71 46 21 29 19 52 33 42 34 29 46 30 33 36 33 47
## [101] 60 27 30 26 30 29 56 28 24 32 36 40 20 20 26 35 56 34 28 28
# Ou
bakers[,"age"]
## # A tibble: 120 x 1
## age
## <dbl>
## 1 30
## 2 31
## 3 24
## 4 45
## 5 25
## 6 51
## 7 44
## 8 48
## 9 37
## 10 31
## # … with 110 more rows
40 / 52

Pela posição da linha

bakers[1:5, ]
## # A tibble: 5 x 8
## series baker_full baker age occupation hometown baker_last baker_first
## <fct> <chr> <chr> <dbl> <chr> <chr> <chr> <chr>
## 1 1 "Annetha Mi… Annet… 30 Midwife Essex Mills Annetha
## 2 1 "David Cham… David 31 Entrepreneur Milton … Chambers David
## 3 1 "Edward \"E… Edd 24 Debt collect… Bradford Kimber Edward
## 4 1 "Jasminder … Jasmi… 45 Assistant Cr… Birming… Randhawa Jasminder
## 5 1 "Jonathan S… Jonat… 25 Research Ana… St Alba… Shepherd Jonathan
41 / 52

Por linha e coluna

bakers[1:5, "age"]
## # A tibble: 5 x 1
## age
## <dbl>
## 1 30
## 2 31
## 3 24
## 4 45
## 5 25
bakers[5:15, 3:5]
## # A tibble: 11 x 3
## baker age occupation
## <chr> <dbl> <chr>
## 1 Jonathan 25 Research Analyst
## 2 Lea 51 Retired
## 3 Louise 44 Police Officer
## 4 Mark 48 Bus Driver
## 5 Miranda 37 Food buyer for Marks & Spencer
## 6 Ruth 31 Retail manager/Housewife
## 7 Ben 31 Graphic Designer
## 8 Holly 31 Advertising executive
## 9 Ian 40 Fundraiser for English Heritage
## 10 Janet 63 Teacher of Modern Languages
## 11 Jason 19 Civil Engineering Student
42 / 52

Outras Funções Úteis

A classe data.frame possuí algumas funções pré-construídas bastante úteis. Alguns exemplos:

head(bakers) # Mostra primeiras cinco linhas
tail(bakers) # últimas cinco linhas
summary(bakers) # clase de cada coluna
dim(bakes) # dimensões de linha e coluna
glimpse(bakers) # outro modo de ver seus dados.
43 / 52

Operações Boolenas back, back, back again.

# Bakers com mais de 60 anos
bakers[bakers$age>60,]
## # A tibble: 10 x 8
## series baker_full baker age occupation hometown baker_last baker_first
## <fct> <chr> <chr> <dbl> <chr> <chr> <chr> <chr>
## 1 2 "Janet Basu" Janet 63 Teacher of… Formby, … Basu Janet
## 2 3 "Brendan Ly… Brend… 63 Recruitmen… Sutton C… Lynch Brendan
## 3 4 "Christine … Chris… 66 Director o… Didcot, … Wallace Christine
## 4 5 "Diana Bear… Diana 69 Women's In… Alkingto… Beard Diana
## 5 5 "Norman Cal… Norman 66 Retired Na… Portknoc… Calder Norman
## 6 6 "Marie Camp… Marie 66 Retired Auchtera… Campbell Marie
## 7 7 "Jane Beedl… Jane 61 Garden des… Beckenham Beedle Jane
## 8 7 "Lee Banfie… Lee 67 Pastor Bolton Banfield Lee
## 9 7 "Valerie \"… Val 66 Semi-retir… Yeovil Stones Valerie
## 10 8 "Flo Atkins" Flo 71 Retired Merseysi… Atkins Flo
#Bakers de Londers
bakers[bakers$hometown=="London",]
## # A tibble: 8 x 8
## series baker_full baker age occupation hometown baker_last baker_first
## <fct> <chr> <chr> <dbl> <chr> <chr> <chr> <chr>
## 1 2 Robert Bill… Robert 25 Photographer London Billington Robert
## 2 4 Kimberley W… Kimbe… 30 Psychologist London Wilson Kimberley
## 3 6 Mat Riley Mat 37 Fire fighter London Riley Mat
## 4 7 Selasi Gbor… Selasi 30 Client servi… London Gbormittah Selasi
## 5 9 Antony Amou… Antony 30 Banker London Amourdoux Antony
## 6 9 Dan Beasley… Dan 36 Full-time pa… London Beasley-H… Dan
## 7 9 Manon Lagrè… Manon 26 Software pro… London Lagrève Manon
## 8 9 Ruby Bhogal Ruby 29 Project mana… London Bhogal Ruby
44 / 52

Exportando banco de dados.

Uma função importante do R consiste em exportar seus resultados, incluindo um novo banco de dados. Há diversas funções para fazer isso, a depender do formato do output que você deseja. Alguns exemplos:

  • write.table() for txt
  • write.csv() for csv
  • write.xlsx for xlsx
  • save() to export as a RData
45 / 52

Exportando como csv.

# make a fake data set
dfake <- data.frame(normal=rnorm(100, 0, 1),
uniform=runif(100, 0, 1),
pois=rpois(100, 10))
# write.function(data, name_to_be_saved)
write.csv(dfake, "dfake.csv")
46 / 52

Mas... Onde estão meus dados? E onde R está olhando?

O R não sabe intuitivamente onde estão seus dados. Se os dados estiverem em uma pasta especial chamada "pesquisa super secreta", temos que dizer ao R como chegar lá.

Podemos fazer isso de duas maneiras:

47 / 52

Mas... Onde estão meus dados? E onde R está olhando?

O R não sabe intuitivamente onde estão seus dados. Se os dados estiverem em uma pasta especial chamada "pesquisa super secreta", temos que dizer ao R como chegar lá.

Podemos fazer isso de duas maneiras:

  1. Aprenda onde seus arquivos estão.
47 / 52

Mas... Onde estão meus dados? E onde R está olhando?

O R não sabe intuitivamente onde estão seus dados. Se os dados estiverem em uma pasta especial chamada "pesquisa super secreta", temos que dizer ao R como chegar lá.

Podemos fazer isso de duas maneiras:

  1. Aprenda onde seus arquivos estão.

  2. Defina seu diretório de trabalho para essa pasta: todos seus outputs e inputs estarão lá.

47 / 52

Mas... Onde estão meus dados? E onde R está olhando?

O R não sabe intuitivamente onde estão seus dados. Se os dados estiverem em uma pasta especial chamada "pesquisa super secreta", temos que dizer ao R como chegar lá.

Podemos fazer isso de duas maneiras:

  1. Aprenda onde seus arquivos estão.

  2. Defina seu diretório de trabalho para essa pasta: todos seus outputs e inputs estarão lá.

47 / 52

Paths

Toda vez que o R é inicializado, ele olha para o mesmo lugar (chamado de global path), a menos que seja solicitado a ir para outro lugar.

# Onde meu R está olhando?
getwd()
## [1] "/home/venturat/Dropbox/fgv_capes_print/website/fgv_intro_css_/static/slides"
# Onde eu quero que olhe?
setwd("/home/venturat/Downloads")
48 / 52

Importando dados.

# Checa diretorio
getwd()
## [1] "/home/venturat/Dropbox/fgv_capes_print/website/fgv_intro_css_/static/slides"
# Ve arquivos neste diretorio.
list.files()
## [1] "aulas-estatistica.png" "cao.png"
## [3] "code" "deputados_alerj.csv"
## [5] "dfake.csv" "figs"
## [7] "fontsrladies.css" "libs"
## [9] "mun_1985.csv" "rdd.png"
## [11] "slides_apis_cache" "slides_apis_files"
## [13] "slides_apis.html" "slides_apis.Rmd"
## [15] "slides_aula_textos_tutorial_cache" "slides_aula_textos_tutorial.html"
## [17] "slides_aula_textos_tutorial.Rmd" "slides_experimentos_cache"
## [19] "slides_experimentos_files" "slides_experimentos_ufmg.html"
## [21] "slides_experimentos_ufmg.pdf" "slides_experimentos_ufmg.Rmd"
## [23] "slides_experimentos.html" "slides_experimentos.Rmd"
## [25] "slides-01-cont.html" "slides-01-cont.Rmd"
## [27] "slides-01-intro_files" "slides-01-intro.html"
## [29] "slides-01-intro.Rmd" "slides-02-intro_files"
## [31] "slides-02-intro_II_files" "slides-02-intro_II.html"
## [33] "slides-02-intro_II.Rmd" "slides-02-intro.html"
## [35] "slides-02-intro.Rmd" "slides-03-r_markdown.html"
## [37] "slides-03-r_markdown.Rmd" "slides-04-intro-tidyverse_cache"
## [39] "slides-04-intro-tidyverse_files" "slides-04-intro-tidyverse.html"
## [41] "slides-04-intro-tidyverse.Rmd" "slides-05-joins_cache"
## [43] "slides-05-joins.html" "slides-05-joins.Rmd"
## [45] "slides-06-tidy_cache" "slides-06-tidy.html"
## [47] "slides-06-tidy.Rmd" "slides-raspagem_cache"
## [49] "slides-raspagem.html" "slides-raspagem.Rmd"
## [51] "slides-speed_dating.html" "slides-speed_dating.Rmd"
## [53] "slides-tidyverse-extra_cache" "slides-tidyverse-extra.html"
## [55] "slides-tidyverse-extra.Rmd" "slides-visualizacao_I_cache"
## [57] "slides-visualizacao_I_files" "slides-visualizacao_I.html"
## [59] "slides-visualizacao_I.Rmd" "slides-visualizacao_II_cache"
## [61] "slides-visualizacao_II_files" "slides-visualizacao_II.html"
## [63] "slides-visualizacao_II.Rmd" "styles.css"
## [65] "xaringan-themer_modify.css" "xaringan-themer.css"
# Importa os dados.
dados <- read.csv("dfake.csv")
head(dados)
## X normal uniform pois
## 1 1 1.1088054 0.1173935 9
## 2 2 0.2844622 0.8508718 13
## 3 3 -0.1293795 0.5034212 9
## 4 4 -0.1754044 0.8740060 14
## 5 5 -0.8794987 0.1786838 6
## 6 6 -0.1884141 0.1868031 11
49 / 52

Desafio 2

Acima, quando filtramos o banco de dados bakers, usamos a seguinte função:

bakers[bakers$age>60,]

Me explique com o máximo de detalhes o que a linha de código acima está fazendo. Porque a operação booleana está antes da virgula? Qual o output da operação booleana?

<div class="countdown" id="timer_611c3ffa" style="right:0;bottom:0;margin:5%;padding:10px;font-size:3em;" data-warnwhen="0">
<code class="countdown-time"><span class="countdown-digits minutes">05</span><span class="countdown-digits colon">:</span><span class="countdown-digits seconds">00</span></code>
</div>
50 / 52

Nosso plano na próxima aula

  • Funções.

  • Iteração via Loops.

  • Controle de Fluxo.

E não esqueção de olhar os tutoriais no site!

51 / 52
52 / 52

Introdução ao R: Parte I

2 / 52
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
Esc Back to slideshow