Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:tidyverse:readr

Importare i dati con readr

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.  

Domande? Scrivimi

Messenger Telegram Email
r/tidyverse/readr.txt · Ultima modifica: 02/12/2022 17:27 da Agnese Vardanega