Le funzioni del pacchetto readr servono ad importare in R dati a partire da vari formati.
I formati di file supportati sono
Formato | Funzione |
---|---|
valori delimitati da virgole (CSV) | read_csv() |
valori delimitati da tabulazione (TSV) | read_tsv() |
valori delimitati (di cui CSV e TSV sono casi speciali) | read_delim() |
larghezza fissa | read_fwf() |
separati da spazi vuoti | read_table() |
web log files | read_log() |
Queste funzioni sono quelle che vengono utilizzate quando si importano i dati usando l'interfaccia di RStudio.
readr fa parte dei pacchetti base del Tidyverse, quindi può essere caricato con il comando:
library(tidyverse)
oppure con
library(readr)
Importiamo un file di esempio presente nel pacchetto ( "chickens.csv"
, richiamato con readr_example("chickens.csv")
):
(chickens <- read_csv(readr_example("chickens.csv")))
Rows: 5 Columns: 4 ── Column specification ───────────────────────────────────────────────────────── Delimiter: "," chr (3): chicken, sex, motto dbl (1): eggs_laid ℹ Use `spec()` to retrieve the full column specification for this data. ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message. # A tibble: 5 × 4 chicken sex eggs_laid motto <chr> <chr> <dbl> <chr> 1 Foghorn Leghorn rooster 0 That's a joke, ah say, that's a joke… 2 Chicken Little hen 3 The sky is falling! 3 Ginger hen 12 Listen. We'll either die free chicke… 4 Camilla the Chicken hen 7 Bawk, buck, ba-gawk. 5 Ernie The Giant Chicken rooster 0 Put Captain Solo in the cargo hold.
readr esplicita nei risultati il tipo di dati contenuti nelle colonne, per come li ha interpretati. In questo modo, è possibile controllare che i dati siano stati importanti correttamente.
In caso contrario, sarà necessario specificare il tipo di dati colonna per colonna.
A tale scopo, e per velocizzare il lavoro, possiamo recupare le informazioni sulle colonne, così come sono state importate, usando la funzione spec()
:
spec(chickens)
cols( chicken = col_character(), sex = col_character(), eggs_laid = col_double(), motto = col_character() )
Modifichiamo queste stesse righe (ad esempio per importare "sex" come fattore), e inseriamole come argomento della funzione:
chickens <- read_csv( readr_example("chickens.csv"), col_types = cols( chicken = col_character(), sex = col_factor(levels = c("rooster", "hen")), eggs_laid = col_double(), motto = col_character() ) )
# A tibble: 5 × 4 chicken sex eggs_laid motto <chr> <fct> <dbl> <chr> 1 Foghorn Leghorn rooster 0 That's a joke, ah say, that's a joke… 2 Chicken Little hen 3 The sky is falling! 3 Ginger hen 12 Listen. We'll either die free chicke… 4 Camilla the Chicken hen 7 Bawk, buck, ba-gawk. 5 Ernie The Giant Chicken rooster 0 Put Captain Solo in the cargo hold.