Questa è una vecchia versione del documento!
Importare i dati con readr
Le funzioni del pacchetto readr servono ad importare in R dati a partire da vari formati (eventualmente fornendo un report dei problemi riscontrati in fase di importazione).
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#con_rstudio.
readr fa parte dei pacchetti base del Tidyverse, quindi può essere caricato con il comando:
library(tidyverse)
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.
Per recupare le informazioni sulle colonne, così come sono state importate, usiamo spec()
, in questo modo:
spec(chickens)
cols( chicken = col_character(), sex = col_character(), eggs_laid = col_double(), motto = col_character() )
Utilizziamo queste righe e modifichiamole (ad esempio per importare "sex" come fattore), per inserirle 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.