Dataframe

Author

Nívia

Data frames e importação de dados

A base de dados é representada por objetos chamados de data frames. A principal característica de um data frame é possuir linhas e colunas. Para a leitura de dados em R, deve-se salvar o arquivo em um formato adequado.

Tipos de data frames e as funções de pacotes

Como mencionado na aula anterior (Pacotes e carregamento de pacotes), existem alguns pacotes que são essenciais para realizar análises no R e, tratando-se de data frames, alguns deles se destacam.

Para carregar o dataframe, pode-se usar pacotes do R, a exemplo do pacote dataset, que tem em suas funções o pacote cars.

cars
   speed dist
1      4    2
2      4   10
3      7    4
4      7   22
5      8   16
6      9   10
7     10   18
8     10   26
9     10   34
10    11   17
11    11   28
12    12   14
13    12   20
14    12   24
15    12   28
16    13   26
17    13   34
18    13   34
19    13   46
20    14   26
21    14   36
22    14   60
23    14   80
24    15   20
25    15   26
26    15   54
27    16   32
28    16   40
29    17   32
30    17   40
31    17   50
32    18   42
33    18   56
34    18   76
35    18   84
36    19   36
37    19   46
38    19   68
39    20   32
40    20   48
41    20   52
42    20   56
43    20   64
44    22   66
45    23   54
46    24   70
47    24   92
48    24   93
49    24  120
50    25   85
cars2 <- cars
speed <- cars2$speed
speed
 [1]  4  4  7  7  8  9 10 10 10 11 11 12 12 12 12 13 13 13 13 14 14 14 14 15 15
[26] 15 16 16 17 17 17 18 18 18 18 19 19 19 20 20 20 20 20 22 23 24 24 24 24 25

Para criar um dataframe de pacote, basta carregar o pacote e depois atribui-lo. Como já mencionado, para atribuir uma função a outra, basta usar <-. Ex.: buscar em packages o pacote r4pde e carrega-lo (usando a função library), dentro do quadro de ajuda deste pacote, é possível encontrar os dataframes incorporados, como o RustSoybean. Para usar esse quadro de dados basta usar a função de atribuição.

library(r4pde)
df <- RustSoybean
df
# A tibble: 34 × 7
   epidemia latitude longitude local              planting   detection  severity
      <dbl>    <dbl>     <dbl> <chr>              <date>     <date>        <dbl>
 1       23    -23.0     -50.1 Cambara            2003-11-25 2004-02-02     24  
 2       24    -24.0     -52.4 Campo Mourao       2003-11-28 2004-02-02     21  
 3       31    -15.5     -55.2 Campo Verde        2004-11-20 2005-01-25     78  
 4        3    -13.3     -44.6 Correntina         2002-11-10 2003-01-03     85  
 5       15    -13.3     -44.6 Correntina         2003-11-28 2004-01-31     25  
 6       34    -25.4     -51.5 Guarapuava         2004-11-29 2005-03-14     32  
 7        7    -29.2     -53.7 Julio Castilhos    2002-12-15 2003-04-10     40  
 8       13    -12.1     -45.8 Luis Eduardo Maga… 2003-11-12 2004-02-15     39.2
 9       33    -12.1     -45.8 Luis Eduardo Maga… 2004-11-19 2005-01-25     55  
10        1    -23.3     -51.2 Londrina           2002-11-06 2003-02-03     45  
# ℹ 24 more rows

A função para a leitura de dados no R é a read.table. O R possui um bom número de variantes desta função, usadas para importar uma variedade de formatos de arquivos diferentes no R. As variações da função read.table mais úteis são as funções read.csv e read.csv2 e readxl.

Tidyverse: é um pacote que consolida uma série de ferramentas. Fazem parte do tidyverse os pacotes dplyr, tidyr, readr, ggplot2, entre muitos outros.

Dados em formato Excel (pacote readxl)

Para importar dados diretamente de outros softwares, é necessário instalar pacotes, a exemplo do readxl, usado para a importação de planilhas do excel. O pacote readxl permite gerar dataframe de planilhas excel e é a forma mais simples de carregar um arquivo neste formato. O pacote readxl não é do conjunto tidyverse, então precisa ser carregado sempre antes de usar. A maioria das funções do readxl permite ler dados de planilhas excel, a exemplo de read_excel. O primeiro argumento para read-excel é o caminho do arquivo que deve ser lido. O caminho do arquivo e o nome do arquivo (incluindo a extensão do arquivo) precisam ser colocados entre aspas duplas, pois a função espera que seja uma função de caractere.

library(readxl)
magnesio <- read_excel("dados-diversos.xlsx")
escala1 <- read_excel("dados-diversos.xlsx", "escala")
escala2 <- read_excel("dados-diversos.xlsx", 2)

No Excel, um arquivo pode ter várias planilhas. Por padrão, as funções de leitura trarão apenas a primeira planilha do arquivo. Para trazer outra planilha específica, basta utilizarmos o argumento sheet+o número da planilha (linha 3 do comando acima), ou adicionar o nome da planilha desejada entre aspas duplas, separada do nome da planilha geral por uma vírgula (linha 2 do comando acima).

Dados em formato csv e txt (pacote readr)

O pacote readr do tidyverse é utilizado para importar arquivos de texto, como .txt ou .csv, para o R e seu carregamento é feito, assim como os demais, pela função library. O readr transforma arquivos de textos em tibbles usando as funções como: read.csv() ou read_csv() - usada para importar arquivos de valores separados por , e com a primeira linha dos dados com os nomes das variáveis. read.csv2 ou read_csv2() - usada para importar bases de arquivos separados por ponto-e-vírgula no R. Em alguns países, como o Brasil, as vírgulas são utilizadas para separar as casas decimais dos números, inviabilizando o uso de arquivos .csv. Nesses casos, quando a vírgula é o separador de decimal, os arquivos .csv passam a ser separados por ponto-e-vírgula, assim, esta função assume que os dados são separados por ; e que uma vírgula é usada ao inves de um ponto decimal.

CSV:

library(tidyverse)

#using read.csv

magnesio2 <- read.csv("dados-diversos.csv")

#using read_csv
magnesio3 <- read_csv("dados-diversos.csv")
magnesio3
# A tibble: 60 × 4
   Irrigation   rep   day severity
   <chr>      <dbl> <dbl>    <dbl>
 1 Furrow         1     0     0.01
 2 Furrow         2     0     0.01
 3 Furrow         3     0     0.01
 4 Furrow         1     7     0.04
 5 Furrow         2     7     0.04
 6 Furrow         3     7     0.04
 7 Furrow         1    14     0.1 
 8 Furrow         2    14     0.1 
 9 Furrow         3    14     0.11
10 Furrow         1    21     0.11
# ℹ 50 more rows

TXT: As funções do reader são usadas de forma semelhante as do read.table, sendo que muitas vezes usam os mesmos argumentos. Arquivos em formato txt podem ser importados usando o read.table.

# using read.table

magnesio4 <-read.table("dados-diversos.txt", header = TRUE)
magnesio4
   Irrigation.rep.day.severity
1              Furrow,1,0,0.01
2              Furrow,2,0,0.01
3              Furrow,3,0,0.01
4              Furrow,1,7,0.04
5              Furrow,2,7,0.04
6              Furrow,3,7,0.04
7             Furrow,1,14,0.10
8             Furrow,2,14,0.10
9             Furrow,3,14,0.11
10            Furrow,1,21,0.11
11            Furrow,2,21,0.10
12            Furrow,3,21,0.10
13            Furrow,1,28,0.15
14            Furrow,2,28,0.17
15            Furrow,3,28,0.15
16            Furrow,1,35,0.18
17            Furrow,2,35,0.19
18            Furrow,3,35,0.19
19            Furrow,1,42,0.34
20            Furrow,2,42,0.38
21            Furrow,3,42,0.34
22            Furrow,1,49,0.38
23            Furrow,2,49,0.39
24            Furrow,3,49,0.38
25            Furrow,1,56,0.40
26            Furrow,2,56,0.41
27            Furrow,3,56,0.43
28            Furrow,1,63,0.46
29            Furrow,2,63,0.46
30            Furrow,3,63,0.43
31               Drip,1,0,0.01
32               Drip,2,0,0.01
33               Drip,3,0,0.01
34               Drip,1,7,0.03
35               Drip,2,7,0.04
36               Drip,3,7,0.04
37              Drip,1,14,0.11
38              Drip,2,14,0.11
39              Drip,3,14,0.10
40              Drip,1,21,0.13
41              Drip,2,21,0.12
42              Drip,3,21,0.10
43              Drip,1,28,0.16
44              Drip,2,28,0.15
45              Drip,3,28,0.15
46              Drip,1,35,0.18
47              Drip,2,35,0.19
48              Drip,3,35,0.17
49              Drip,1,42,0.30
50              Drip,2,42,0.33
51              Drip,3,42,0.34
52              Drip,1,49,0.33
53              Drip,2,49,0.37
54              Drip,3,49,0.37
55              Drip,1,56,0.39
56              Drip,2,56,0.46
57              Drip,3,56,0.41
58              Drip,1,63,0.43
59              Drip,2,63,0.43
60              Drip,3,63,0.43

Obs.: O argumento header = TRUE especifica que a primeira linha dos dados contem o nome das variáveis (ex. magnesio, nitrogenio), se este não for o caso é só usar o argumento header = FALSE.

Dados em planilhas google sheet

Para importar planilhas google, usa a função gsheet (read_sheet), presente no pacote googlesheets4 ou o pacote gsheet. Como esses pacotes também não fazem parte do conjunto tidyverse, precisa carregá-los para usar. A função read_gsheet lê o arquivo (planilha google) a partir de uma URL (copia e cola o link da planilha desejada).

# using gsheet package

library(gsheet)
magnesio5 <- gsheet2tbl("https://docs.google.com/spreadsheets/d/1aID5Dh6PlBVCKzU1j7k-WA6zuWQWE2NhtWEgdJtt5iA/edit?usp=sharing")

survey <- gsheet2tbl("https://docs.google.com/spreadsheets/d/1aID5Dh6PlBVCKzU1j7k-WA6zuWQWE2NhtWEgdJtt5iA/edit#gid=366054269")

# no caso de ter um link da internet

fusarium <- read_csv("https://raw.githubusercontent.com/emdelponte/epidemiology-R/main/data/fusarium_banana.csv")
fusarium
# A tibble: 163 × 4
     lon   lat marker  field
   <dbl> <dbl> <chr>   <dbl>
 1 -50.8 -20.5 plantas    11
 2 -50.8 -20.5 plantas    11
 3 -50.8 -20.5 plantas    11
 4 -50.8 -20.5 plantas    11
 5 -50.8 -20.5 plantas    11
 6 -50.8 -20.5 plantas    11
 7 -50.8 -20.5 plantas    11
 8 -50.8 -20.5 plantas    11
 9 -50.8 -20.5 plantas    11
10 -50.8 -20.5 plantas    11
# ℹ 153 more rows