GET00130 - Métodos Computacionais para Estatística II
Conteúdo da aula
- Removendo linhas duplicadas;
- Seleção de linhas e colunas;
- Criação de variáveis;
- Renomeando variáveis na base;
- Ordenamento das saídas;
- Estatísticas agregadas.
1 - Pacote dplyr
O pacote dplyr é um dos pacotes mais poderosos e populares do R, desenvolvido por Hadley Wickham.
O dplyr é um poderoso pacote R para manipular, limpar e resumir dados não estruturados. Ele utiliza C e C++ por trás da maioria das funções, o que geralmente torna o código mais eficiente. Em suma, faz a exploração de dados e manipulação de dados de forma fácil e rápida no R.
As principais funções do dplyr são:
distinct()- remove linhas repetidas,rename()- renomeia variáveis,filter()- filtra linhas,select()- seleciona colunas,mutate()/transmute()- cria/modifica colunas,arrange()- ordena a base,summarise()- sumariza a base.
# Carregando o pacote dplyr por meio do pacote tidyverse
library(tidyverse)1.1 - Função distinct
Esta função retorna somente linhas distinstas de um tibble.
É possível fazer essa seleção utilizando todas as variáveis ou somente um subconjunto delas.
Uma das funcionalidades desta função é verificar se existem unidades experimentais duplicadas na base. Vale ressaltar que é necessário que exista uma variável que identifique de forma única (uma chave) cada unidade experimental ou um conjunto de variáveis na qual você acredita que não possa assumir um mesmo valor para mais de uma unidade experimental.
Atividade: Importe o arquivo PNUD.csv e guarde em um objeto chamado basePNUD.
A base importada contém dados dos municípios brasileiros e contém variáveis como idh, indíce de gini e tamanho da população, entre outras, para três períodos distintos (1991, 2000 e 2010).
#Visualizando as linhas iniciais da base
basePNUD# A tibble: 16,694 x 14
ano muni uf regiao idhm idhm_e idhm_l idhm_r espvida rdpc gini pop
<dbl> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1991 ALTA… RO Norte 0.329 0.112 0.617 0.516 62.0 198. 0.63 22835
2 1991 ARIQ… RO Norte 0.432 0.199 0.684 0.593 66.0 319. 0.57 55018
3 1991 CABI… RO Norte 0.309 0.108 0.636 0.43 63.2 116. 0.7 5846
4 1991 CACO… RO Norte 0.407 0.171 0.667 0.593 65.0 320. 0.66 66534
5 1991 CERE… RO Norte 0.386 0.167 0.629 0.547 62.7 240. 0.6 19030
6 1991 COLO… RO Norte 0.376 0.151 0.658 0.536 64.5 225. 0.62 25070
7 1991 CORU… RO Norte 0.203 0.039 0.572 0.373 59.3 81.4 0.59 10737
8 1991 COST… RO Norte 0.425 0.22 0.629 0.553 62.8 250. 0.65 6902
9 1991 ESPI… RO Norte 0.388 0.159 0.653 0.561 64.2 263. 0.63 22505
10 1991 GUAJ… RO Norte 0.468 0.247 0.662 0.625 64.7 391. 0.6 31240
# … with 16,684 more rows, and 2 more variables: lat <dbl>, lon <dbl>
Vamos supor, que as variáveis existentes no objeto basePNUD identificam de forma única um município em um determinado ano.
Como checar se existem linhas repetidas que deveriam ser eliminadas da base?
#Checando a dimensão de basePNUD
dim(basePNUD)[1] 16694 14
#Eliminando as linhas repetidas considerando toda a base de dados
basePNUD = basePNUD |>
distinct()
#Checando a dimensão de basePNUD
basePNUD# A tibble: 16,686 x 14
ano muni uf regiao idhm idhm_e idhm_l idhm_r espvida rdpc gini pop
<dbl> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1991 ALTA… RO Norte 0.329 0.112 0.617 0.516 62.0 198. 0.63 22835
2 1991 ARIQ… RO Norte 0.432 0.199 0.684 0.593 66.0 319. 0.57 55018
3 1991 CABI… RO Norte 0.309 0.108 0.636 0.43 63.2 116. 0.7 5846
4 1991 CACO… RO Norte 0.407 0.171 0.667 0.593 65.0 320. 0.66 66534
5 1991 CERE… RO Norte 0.386 0.167 0.629 0.547 62.7 240. 0.6 19030
6 1991 COLO… RO Norte 0.376 0.151 0.658 0.536 64.5 225. 0.62 25070
7 1991 CORU… RO Norte 0.203 0.039 0.572 0.373 59.3 81.4 0.59 10737
8 1991 COST… RO Norte 0.425 0.22 0.629 0.553 62.8 250. 0.65 6902
9 1991 ESPI… RO Norte 0.388 0.159 0.653 0.561 64.2 263. 0.63 22505
10 1991 GUAJ… RO Norte 0.468 0.247 0.662 0.625 64.7 391. 0.6 31240
# … with 16,676 more rows, and 2 more variables: lat <dbl>, lon <dbl>
Vejam que 8 linhas foram removidas do objeto.
Se aplicarmos o distinct em uma variável específica, ele retorna um tibble que contém todos os valores distintos daquela variável.
#verificando todos os valores distintos da coluna ano
basePNUD |>
distinct(ano)# A tibble: 3 x 1
ano
<dbl>
1 1991
2 2000
3 2010
Se aplicarmos o distinct em mais de uma variável, ele retorna um tibble que contém todas as combinações distintas observadas daquelas variáveis.
#verificando todos os valores distintos dos cruzamentos de ano e UF
basePNUD |>
distinct(ano,uf)# A tibble: 81 x 2
ano uf
<dbl> <chr>
1 1991 RO
2 1991 AC
3 1991 AM
4 1991 RR
5 1991 PA
6 1991 AP
7 1991 TO
8 1991 MA
9 1991 PI
10 1991 CE
# … with 71 more rows
1.2 - Função rename
Esta função renomeia nomes de colunas (variáveis).
#renomeando a variável lat por Latitude e guardando tudo no objeto basePNUD
basePNUD = basePNUD |>
rename(Latitude = lat)
basePNUD# A tibble: 16,686 x 14
ano muni uf regiao idhm idhm_e idhm_l idhm_r espvida rdpc gini pop
<dbl> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1991 ALTA… RO Norte 0.329 0.112 0.617 0.516 62.0 198. 0.63 22835
2 1991 ARIQ… RO Norte 0.432 0.199 0.684 0.593 66.0 319. 0.57 55018
3 1991 CABI… RO Norte 0.309 0.108 0.636 0.43 63.2 116. 0.7 5846
4 1991 CACO… RO Norte 0.407 0.171 0.667 0.593 65.0 320. 0.66 66534
5 1991 CERE… RO Norte 0.386 0.167 0.629 0.547 62.7 240. 0.6 19030
6 1991 COLO… RO Norte 0.376 0.151 0.658 0.536 64.5 225. 0.62 25070
7 1991 CORU… RO Norte 0.203 0.039 0.572 0.373 59.3 81.4 0.59 10737
8 1991 COST… RO Norte 0.425 0.22 0.629 0.553 62.8 250. 0.65 6902
9 1991 ESPI… RO Norte 0.388 0.159 0.653 0.561 64.2 263. 0.63 22505
10 1991 GUAJ… RO Norte 0.468 0.247 0.662 0.625 64.7 391. 0.6 31240
# … with 16,676 more rows, and 2 more variables: Latitude <dbl>, lon <dbl>
Percebemos que no objeto basePNUD a coluna que anteriormente estava nomeada como lat, agora está nomeada como Latitude.
1.3 - Função select
Esta função seleciona coluna (variáveis).
É possível fazer essa seleção utilizando nomes, índices, intervalos de variáveis ou utilizar as funções starts_with(x), ends_with, contains(x), matches(x), one_of(x) para selecionar subconjunto de variáveis de forma esperta.
#Selecionando todas as variáveis entre ano e região e a variável rdpc
basePNUD|>
select(ano:regiao,rdpc)# A tibble: 16,686 x 5
ano muni uf regiao rdpc
<dbl> <chr> <chr> <chr> <dbl>
1 1991 ALTA FLORESTA D'OESTE RO Norte 198.
2 1991 ARIQUEMES RO Norte 319.
3 1991 CABIXI RO Norte 116.
4 1991 CACOAL RO Norte 320.
5 1991 CEREJEIRAS RO Norte 240.
6 1991 COLORADO DO OESTE RO Norte 225.
7 1991 CORUMBIARA RO Norte 81.4
8 1991 COSTA MARQUES RO Norte 250.
9 1991 ESPIGÃO D'OESTE RO Norte 263.
10 1991 GUAJARÁ-MIRIM RO Norte 391.
# … with 16,676 more rows
#Selecionando todas as variáveis com excessão de rdpc e regiao
basePNUD|>
select(-c(regiao, rdpc))# A tibble: 16,686 x 12
ano muni uf idhm idhm_e idhm_l idhm_r espvida gini pop Latitude
<dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1991 ALTA FLO… RO 0.329 0.112 0.617 0.516 62.0 0.63 22835 -11.9
2 1991 ARIQUEMES RO 0.432 0.199 0.684 0.593 66.0 0.57 55018 -9.91
3 1991 CABIXI RO 0.309 0.108 0.636 0.43 63.2 0.7 5846 -13.5
4 1991 CACOAL RO 0.407 0.171 0.667 0.593 65.0 0.66 66534 -11.4
5 1991 CEREJEIR… RO 0.386 0.167 0.629 0.547 62.7 0.6 19030 -13.2
6 1991 COLORADO… RO 0.376 0.151 0.658 0.536 64.5 0.62 25070 -13.1
7 1991 CORUMBIA… RO 0.203 0.039 0.572 0.373 59.3 0.59 10737 -13.0
8 1991 COSTA MA… RO 0.425 0.22 0.629 0.553 62.8 0.65 6902 -12.4
9 1991 ESPIGÃO … RO 0.388 0.159 0.653 0.561 64.2 0.63 22505 -11.5
10 1991 GUAJARÁ-… RO 0.468 0.247 0.662 0.625 64.7 0.6 31240 -10.8
# … with 16,676 more rows, and 1 more variable: lon <dbl>
#Selecionando a variável ano e todas as variáveis que comecem com idhm e salvando no objeto baseIDH
baseIDH = basePNUD |>
select(ano, starts_with('idhm'))
baseIDH# A tibble: 16,686 x 5
ano idhm idhm_e idhm_l idhm_r
<dbl> <dbl> <dbl> <dbl> <dbl>
1 1991 0.329 0.112 0.617 0.516
2 1991 0.432 0.199 0.684 0.593
3 1991 0.309 0.108 0.636 0.43
4 1991 0.407 0.171 0.667 0.593
5 1991 0.386 0.167 0.629 0.547
6 1991 0.376 0.151 0.658 0.536
7 1991 0.203 0.039 0.572 0.373
8 1991 0.425 0.22 0.629 0.553
9 1991 0.388 0.159 0.653 0.561
10 1991 0.468 0.247 0.662 0.625
# … with 16,676 more rows
#É possível ordenar as variáveis na base com a função select
basePNUD |>
select(muni, ano, everything())# A tibble: 16,686 x 14
muni ano uf regiao idhm idhm_e idhm_l idhm_r espvida rdpc gini pop
<chr> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ALTA… 1991 RO Norte 0.329 0.112 0.617 0.516 62.0 198. 0.63 22835
2 ARIQ… 1991 RO Norte 0.432 0.199 0.684 0.593 66.0 319. 0.57 55018
3 CABI… 1991 RO Norte 0.309 0.108 0.636 0.43 63.2 116. 0.7 5846
4 CACO… 1991 RO Norte 0.407 0.171 0.667 0.593 65.0 320. 0.66 66534
5 CERE… 1991 RO Norte 0.386 0.167 0.629 0.547 62.7 240. 0.6 19030
6 COLO… 1991 RO Norte 0.376 0.151 0.658 0.536 64.5 225. 0.62 25070
7 CORU… 1991 RO Norte 0.203 0.039 0.572 0.373 59.3 81.4 0.59 10737
8 COST… 1991 RO Norte 0.425 0.22 0.629 0.553 62.8 250. 0.65 6902
9 ESPI… 1991 RO Norte 0.388 0.159 0.653 0.561 64.2 263. 0.63 22505
10 GUAJ… 1991 RO Norte 0.468 0.247 0.662 0.625 64.7 391. 0.6 31240
# … with 16,676 more rows, and 2 more variables: Latitude <dbl>, lon <dbl>
A função select também serve para ordenar as variáveis na base, uma vez que ela monta a nova base em função do ordenamento das variáveis selecionadas. Aqui a função everything usada em select permite com que não seja digitada o nome das demais variáveis. Deste modo, o comando acima, serviu para fazer com que as variáveis muni e ano fossem as primeiras variáveis da base e em seguida as demais viesem na ordem que já se encontravam.
1.4 - Função filter()
Essa função serve para filtrar linhas (selecionar linhas segundo algum critério).
#Selecionando as variáveis ano, muni e uf e em seguida filtrando somente as linhas do estado do CE
basePNUD |>
select(ano,muni,uf) |>
filter(uf == 'CE')# A tibble: 552 x 3
ano muni uf
<dbl> <chr> <chr>
1 1991 ABAIARA CE
2 1991 ACARAPE CE
3 1991 ACARAÚ CE
4 1991 ACOPIARA CE
5 1991 AIUABA CE
6 1991 ALCÂNTARAS CE
7 1991 ALTANEIRA CE
8 1991 ALTO SANTO CE
9 1991 AMONTADA CE
10 1991 ANTONINA DO NORTE CE
# … with 542 more rows
Vale resslatar que o símbolo == significa igual e = significa recebe no R.
#Selecionando as variáveis ano, regiao, uf e idhm e em seguida filtrando as linhas que são dos estados do CE ou RJ no ano de 2010.
basePNUD |>
select(ano,regiao,uf,idhm) |>
filter(uf %in% c('CE', 'RJ') , ano == 2010)# A tibble: 275 x 4
ano regiao uf idhm
<dbl> <chr> <chr> <dbl>
1 2010 Nordeste CE 0.628
2 2010 Nordeste CE 0.606
3 2010 Nordeste CE 0.601
4 2010 Nordeste CE 0.595
5 2010 Nordeste CE 0.569
6 2010 Nordeste CE 0.6
7 2010 Nordeste CE 0.602
8 2010 Nordeste CE 0.601
9 2010 Nordeste CE 0.606
10 2010 Nordeste CE 0.599
# … with 265 more rows
Percebemos que no resultado final foram apresentadas somente as variáveis selecionadas e as linhas que satisfaziam a condição especificada: ser um município do estado do RJ ou CE no ano de 2010.
#Selecionando as variáveis ano, regiao, uf e idhm e em seguida filtrando as linhas que ou (são dos estados do CE ou RJ e possuem idhm > 0,75) ou (são dos estados de SP ou MG e possuem idhm > 0,8) no ano de 2010.
basePNUD |>
select(ano,regiao,uf,idhm) |>
filter( uf %in% c('CE', 'RJ') & idhm > 0.75 | uf %in% c('SP', 'MG') & idhm > 0.8, ano == 2010)# A tibble: 34 x 4
ano regiao uf idhm
<dbl> <chr> <chr> <dbl>
1 2010 Nordeste CE 0.754
2 2010 Sudeste MG 0.81
3 2010 Sudeste MG 0.813
4 2010 Sudeste RJ 0.761
5 2010 Sudeste RJ 0.764
6 2010 Sudeste RJ 0.753
7 2010 Sudeste RJ 0.765
8 2010 Sudeste RJ 0.753
9 2010 Sudeste RJ 0.837
10 2010 Sudeste RJ 0.768
# … with 24 more rows
Novamente, percebemos que a combinação das funções select e filter foram utilizadas para selecionar as variáveis ano, regiao, uf e idhm e selecionar somente os municípios que eram do estado do Rio de Janeiro ou Ceará e possuíam IDHM supeior a 0,75 ou eram do estado do Minas Gerais ou São Paulo e possuíam IDHM supeior a 0,8 no ano de 2010.
#Selecionando as variáveis ano, muni, uf e idhm e em seguida filtrando as linhas que começam com a letra Z (str_detect - pacote stringr)
basePNUD |>
select(ano,muni,uf,idhm) |>
filter(str_detect(muni,"^Z"))# A tibble: 12 x 4
ano muni uf idhm
<dbl> <chr> <chr> <dbl>
1 1991 ZÉ DOCA MA 0.322
2 1991 ZABELÊ PB 0.324
3 1991 ZACARIAS SP 0.488
4 1991 ZORTÉA SC 0.402
5 2000 ZÉ DOCA MA 0.421
6 2000 ZABELÊ PB 0.484
7 2000 ZACARIAS SP 0.64
8 2000 ZORTÉA SC 0.586
9 2010 ZÉ DOCA MA 0.595
10 2010 ZABELÊ PB 0.623
11 2010 ZACARIAS SP 0.729
12 2010 ZORTÉA SC 0.761
A função str_detec pertence ao pacote stringr. O ^ serve para indicar que a procura pelo Z é no início da palavra.
1.5 - Função mutate
Função que permite criar/modificar variáveis na base de dados existente.
#Selecionando as variáveis muni, rdpc, pop, idhm_l e espvida e em seguida criando as variáveis renda, razao e renda2
basePNUD |>
select(muni,rdpc,pop,idhm_l,espvida) |>
mutate(renda = rdpc * pop,
razao = idhm_l / espvida,
renda2 = renda/razao)# A tibble: 16,686 x 8
muni rdpc pop idhm_l espvida renda razao renda2
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ALTA FLORESTA D'OESTE 198. 22835 0.617 62.0 4531834. 0.00995 4.55e8
2 ARIQUEMES 319. 55018 0.684 66.0 17576600. 0.0104 1.70e9
3 CABIXI 116. 5846 0.636 63.2 680357. 0.0101 6.76e7
4 CACOAL 320. 66534 0.667 65.0 21306848. 0.0103 2.08e9
5 CEREJEIRAS 240. 19030 0.629 62.7 4569103 0.0100 4.56e8
6 COLORADO DO OESTE 225. 25070 0.658 64.5 5636237. 0.0102 5.52e8
7 CORUMBIARA 81.4 10737 0.572 59.3 873777. 0.00964 9.06e7
8 COSTA MARQUES 250. 6902 0.629 62.8 1726052. 0.0100 1.72e8
9 ESPIGÃO D'OESTE 263. 22505 0.653 64.2 5919490. 0.0102 5.82e8
10 GUAJARÁ-MIRIM 391. 31240 0.662 64.7 12226399. 0.0102 1.20e9
# … with 16,676 more rows
A função mutate permite criar novas variáveis na base de dados ao mesmo tempo, inclusive nos permite usar uma das variáveis que estão sendo criadas para criar uma outra nova variável.
1.6 - Função transmute
Função que permite criar um novo objeto com as variáveis criadas de uma base de dados existente. A diferença para o mutate é que o resultado final irá conter somente as variáveis criadas.
#Selecionando as variáveis muni, rdpc, pop, idhm_l e espvida e em seguida criando as variáveis renda, razao e renda2
basePNUD |>
select(muni,rdpc,pop,idhm_l,espvida) |>
transmute(renda = rdpc * pop,
razao = idhm_l / espvida,
renda2 = renda/razao)# A tibble: 16,686 x 3
renda razao renda2
<dbl> <dbl> <dbl>
1 4531834. 0.00995 455460344.
2 17576600. 0.0104 1696501699.
3 680357. 0.0101 67565060.
4 21306848. 0.0103 2077337835.
5 4569103 0.0100 455675407.
6 5636237. 0.0102 552145688.
7 873777. 0.00964 90616180.
8 1726052. 0.0100 172221039.
9 5919490. 0.0102 581796138.
10 12226399. 0.0102 1195121248.
# … with 16,676 more rows
1.7 - Função arrange
A função serve para ordenar (as linhas) um objeto tibble.
#filtrando os dados de 2010 e ordenando pela esperanca de vida de forma crescente
basePNUD |>
filter(ano == 2010) |>
arrange(espvida)# A tibble: 5,562 x 14
ano muni uf regiao idhm idhm_e idhm_l idhm_r espvida rdpc gini pop
<dbl> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2010 CACI… PB Norde… 0.523 0.425 0.672 0.501 65.3 181. 0.53 6689
2 2010 ROTE… AL Norde… 0.505 0.365 0.672 0.524 65.3 209. 0.47 6555
3 2010 OLHO… AL Norde… 0.503 0.399 0.673 0.473 65.4 152. 0.59 4827
4 2010 MATA… PB Norde… 0.536 0.427 0.675 0.533 65.5 220. 0.48 7257
5 2010 JOAQ… PE Norde… 0.554 0.449 0.676 0.561 65.6 263. 0.48 15584
6 2010 POÇÃO PE Norde… 0.528 0.402 0.677 0.542 65.6 234. 0.54 10783
7 2010 OLIV… AL Norde… 0.493 0.345 0.677 0.513 65.6 195. 0.56 10797
8 2010 BREJ… MA Norde… 0.519 0.408 0.677 0.507 65.6 188. 0.48 5349
9 2010 PAUL… MA Norde… 0.549 0.447 0.677 0.546 65.6 239. 0.58 19115
10 2010 JURI… PB Norde… 0.548 0.448 0.677 0.544 65.6 236. 0.53 9996
# … with 5,552 more rows, and 2 more variables: Latitude <dbl>, lon <dbl>
Se quisermos apresentar em ordem decrescente, precisamos usar a função desc na variável expectativa de vida dentro da função arrange.
#filtrando os dados de 2010 e ordenando pela esperanca de vida de forma decrescente
basePNUD |>
filter(ano == 2010) |>
arrange(desc(espvida))# A tibble: 5,562 x 14
ano muni uf regiao idhm idhm_e idhm_l idhm_r espvida rdpc gini
<dbl> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2010 BLUMENAU SC Sul 0.806 0.722 0.894 0.812 78.6 1253. 0.46
2 2010 BRUSQUE SC Sul 0.795 0.707 0.894 0.794 78.6 1117. 0.4
3 2010 BALNEÁRIO … SC Sul 0.845 0.789 0.894 0.854 78.6 1626. 0.52
4 2010 RIO DO SUL SC Sul 0.802 0.727 0.894 0.793 78.6 1114. 0.45
5 2010 RANCHO QUE… SC Sul 0.753 0.644 0.893 0.743 78.6 814. 0.42
6 2010 RIO DO OES… SC Sul 0.754 0.625 0.892 0.769 78.5 957. 0.47
7 2010 IOMERÊ SC Sul 0.795 0.749 0.891 0.754 78.4 874. 0.33
8 2010 JOAÇABA SC Sul 0.827 0.771 0.891 0.823 78.4 1338. 0.54
9 2010 NOVA TRENTO SC Sul 0.748 0.628 0.891 0.749 78.4 848. 0.35
10 2010 PORTO UNIÃO SC Sul 0.786 0.724 0.891 0.752 78.4 864. 0.53
# … with 5,552 more rows, and 3 more variables: pop <dbl>, Latitude <dbl>,
# lon <dbl>
1.8 - Função summarise
Esta função sumariza variáveis da base. Ela aplica uma função às variáveis. Geralmente ela é utilizada em conjunto com a função group_by.
#Calculando o número de municípios por região e a média da espectativa de vida para todas as regiões em todos os anos e ordenando o resultando em ordem decrescente pelo valor da espectativa de vida
basePNUD |>
group_by(ano, regiao) |>
summarise(n = n(),
espvida = mean(espvida, na.rm = TRUE)) |>
arrange(regiao,desc(espvida))`summarise()` has grouped output by 'ano'. You can override using the `.groups` argument.
# A tibble: 15 x 4
# Groups: ano [3]
ano regiao n espvida
<dbl> <chr> <int> <dbl>
1 2010 Centro-Oeste 465 74.3
2 2000 Centro-Oeste 465 70.0
3 1991 Centro-Oeste 465 65.1
4 2010 Nordeste 1794 70.3
5 2000 Nordeste 1794 64.2
6 1991 Nordeste 1794 58.5
7 2010 Norte 449 71.8
8 2000 Norte 449 66.4
9 1991 Norte 449 61.6
10 2010 Sudeste 1667 74.7
11 2000 Sudeste 1667 70.8
12 1991 Sudeste 1667 66.6
13 2010 Sul 1187 75.1
14 2000 Sul 1187 71.6
15 1991 Sul 1187 67.9
A função n() seria equivalente a função length(). Pelo resultado final, percebemos que no ano de 2010 existiam 465 municípios na região Centro-oeste e a expectativa de vida média dos municípios era de 74,3 anos.
A função summarise será extremamente útil para calcularmos medidas resumos de interesse para subgrupos da base de dados.
Desafio
Faça a leitura da base voos.
Crie uma base que contenha somente as variáveis Year (ano da partida), Month (mês da partida), DepTime (Horário real de partida), ArrTime (Horário real de chegada), FlightNum (Número do voo), Distance (Distância percorrida entre aeroportos em milhas), Origin (Aeroporto de origem), TailNum (Número da cauda do avião), ArrDelay (Atraso de chagada em minutos - valores negativos representam adiantamentos).
Renomeie as variáveis usando nomes pequenos em portugês.
Transforme a distância para Km.
Calcule a distancia máxima percorrida, o atraso de chegada medio e o número de viagens de cada avião e salve estas informaçoes em um arquivo com extensão csv.
Calcule o atraso médio de cada aeronave para todas as combinações de meses e anos e salve o arquivo em txt.