9 Filosofia, readr, tibble

este capítulo está em construção. O que segue abaixo é apenas um rascunho.

9.1 Introdução

Referências: R4DS, tidyverse packages.

Neste capítulo, descrevo os fundamentos e etapas de um projeto de ciência de dados. Também adianto como importar diferentes tipos de arquivos para o R usando o pacote “readr”.

Haverão três aprendizados principais:

(i) O que é data science, e os princípios do tidyverse. (ii) Quais são as operações de importing, tidying, e transforming que temos interesse. (iii) Como essas operações são implementadas nos pacotes do tidyverse.

Para os exemplos:

9.2 Ciência de Dados

9.2.1 A Ciência de Dados

A Ciência de Dados é um campo gigante, que nasceu via uma demanda de expandir a estatística para vias de:

  • “learn from data”.
  • “more emphasis on data preparation and presentation rather than statistical modeling”.
  • “emphasis on prediction rather than inference”.

Atualmente, o termo não é super bem definido, e o campo tem muita intersecção com outras disciplinas.

9.2.2 As Etapas de um Projeto

Mais interessante que ficar tentando definir a disciplina, vamos entendê-la na prática. Um projeto comum, no geral, se parece como abaixo:

9.2.3 Etapas: Importing

A primeira etapa é a importação. Alguns comentários:

  • Os dados podem vir de várias fontes, como arquivos locais, bancos de dados, APIs (application programming interface), ou de sites (via web scrapping).
  • Os dados podem estar em vários formatos como CSV, Excel, JSON, entre outros. É interessante ter um conhecimento básico de como cada um funciona.
  • Cada tipo de fonte tem uma maneira diferente de se interagir, e cada formato exige sua própria função.

9.2.4 Etapas: Tidy

A próxima etapa é arrumar, tidy, os dados. Vamos falar sobre isso com mais detalhe, mas existe uma noção bem específica do que são dados arrumados, tidy data.

As três próximas etapas existem dentro de um ciclo.

9.2.5 Etapas: Transform

Mesmo com dados já arrumados, ainda temos o interesse de transformá-los, para conseguir obter insights novos da mesma base de dados.

Visualizar e modelar os dados trará novos insights e novas demandas, de modo que estamos constantemente transformando os dados para criar novas visualizações e modelagens.

Import, tidy e transform juntos são chamados de data wrangling.

9.2.6 Etapas: Visualize

Aqui, serei preguiçoso, o texto do Hadley Wickham é muito bom:

Visualisation is a fundamentally human activity. A good visualisation will show you things that you did not expect, or raise new questions about the data. A good visualisation might also hint that you’re asking the wrong question, or you need to collect different data. Visualisations can surprise you, but don’t scale particularly well because they require a human to interpret them.

9.2.7 Etapas: Model

Um modelo é, em termos simplificados e a depender do contexto, um conjunto de hipóteses sobre o mundo – sobre o processo gerador dos dados –, acrescido com um método matemático e computacional de estimar esse processo.

Models are a fundamentally mathematical or computational tool, so they generally scale well. (…) But every model makes assumptions, and by its very nature a model cannot question its own assumptions. That means a model cannot fundamentally surprise you.

9.2.8 Etapas: Comunication

O último passo é comunicação. As linguagens de programação provém ferramentas para expor seus resultados. O próprio RMarkdown onde esta aula foi escrita é um exemplo disso. Mas existem muitas outras ferramentas mais avançadas para criar reports, livros, páginas na web, aplicativos, etc.

9.2.9 Programming

Surrounding all these tools is programming. Programming is a cross-cutting tool that you use in every part of the project. You don’t need to be an expert programmer to be a data scientist, but learning more about programming pays off because becoming a better programmer allows you to automate common tasks, and solve new problems with greater ease.

9.2.10 Tidyverse

The tidyverse is an opinionated collection of R packages designed for data science. All packages share an underlying design philosophy, grammar, and data structures.

There are four basic principles to a tidy API:

  1. Reuse existing data structures.
  2. Compose simple functions with the pipe.
  3. Embrace functional programming.
  4. Design for humans.

9.3 Pacotes de Importing

9.3.1 Pacotes de Importing

O readr existe “to provide a fast and friendly way to read rectangular data from delimited files”.

O tidyverse também tem pacotes secundários para outros tipos de dados (.xlsx, .json, …), recomendo também estudar o readxl no mínimo. Muitos deles usam argumentos similares.

9.3.2 readr

Veja:

Leia a documentação de:

9.3.3 Argumentos Importantes

Lembre-se de quais operações queremos poder fazer.

Podemos escolher o que selecionar: skip, n_max, col_select, skip_empty_rows.

Também é importante o “como” selecionar (parse):

  • col_types. Veja mais no artigo Column types.
  • locale. Veja mais no artigo Locale.
  • name_repair.
  • quote, comment, na.
  • trim_ws.

9.3.4 Exemplo 1

data <-
"a,b,c,d
1,2,'A',na
3,4,'B',4
fonte:IBGE,,,"

read_delim(I(data))
#> # A tibble: 3 × 4
#>   a              b c     d
#>   <chr>      <dbl> <chr> <chr>
#> 1 1              2 'A'   na
#> 2 3              4 'B'   4
#> 3 fonte:IBGE    NA NA    NA

9.3.5 Exemplo 2

data <-
"a,b,c,d
1,2,'A',na
3,4,'B',4
fonte:IBGE,,,"

read_delim(I(data),
    col_types = list(c = col_factor()), #"nnfn"
    col_select = c(b:d),
    n_max = 2,
    quote = "'", na = "na"
)
#> # A tibble: 2 × 3
#>       b c         d
#>   <dbl> <fct> <dbl>
#> 1     2 A        NA
#> 2     4 B         4

Complemento

Recapitulando


Dicionário de Funções


Referências


Exercícios

@@bs4-math@@