Caricare e salvare file di dati
Leggere file di dati
La funzione più utilizzata per leggere dei file di dati testuali è read.table()
. Se la prima riga del file corrisponde ai nomi delle colonne, va usato il parametro header = TRUE
. sep
è il parametro che stabilisce il separatore di colonna.
read.csv()
è una variante di read.table()
, dove il separatore è la virgola (sep=","
), e serve per leggere i file csv
(comma separated values). read.delim()
si aspetta dei file tsv
(tab separated values).
read.table()
, se non altrimenti specificato, trasforma le colonne stringa come fattori. Non è però detto che questo sia opportuno. Per evitarlo, va specificato il parametro stringsAsFactors=FALSE
.
tabella1 <- read.table("tabella.tsv", header=TRUE, sep="\t")
# identico alla precedente
tabella1 <- read.delim("tabella.tsv", header=TRUE)
tabella2 <- read.table("tabella.csv", header=TRUE, sep=",")
# identico alla precedente
tabella2 <- read.csv("tabella.csv", header=TRUE)
Leggere file in excel
È possibile utilizzare la libreria readxl
## install.packages("readxl")
library(readxl)
read_excel("tabella.xlsx")
Rio
Rio è un pacchetto che permette di importare ed esportare in numerosi formati di dati.
leeper/rio: A Swiss-Army Knife for Data I/O
# install.packages("rio")
library(rio)
install_formats()
# leggo un file salvato da SPSS
ess_table <- import(
"/home/bussolon/programmi/r/datasets/europeansocialsurvey/ESS8e02.sav")
Leggere da un database
Se i dati sono salvati in un database, vi sono dei driver che permettono di interfacciarsi per leggere, interrogare e salvare i dati.
Sqlite
Ad esempio, con RSQLite
è possibile interfacciarsi con SQLite.
r-dbi/RSQLite: R interface for SQLite
## install.packages("RSQLite")
library("RSQLite")
con <- dbConnect(RSQLite::SQLite(), "database.db")
# legge le tabelle del db
dbListTables(con)
# legge i campi di una tabella
dbListFields(con, "prova")
# crea un data frame dalla tabella "prova"
sqlite_tabella <- dbReadTable(con, "prova")
dbClearResult(res)
res <- dbSendQuery(con,
"SELECT * FROM prova WHERE condizione == 'sperimentale'")
query_tabella <- dbFetch(res)
Fogli di lavoro google (googlesheets)
Attraverso la libreria googlesheets
è possibile utilizzare da R i fogli di lavoro Google.
# installo il pacchetto
# install.packages("googlesheets")
# richiamo la libreria
library(googlesheets)
# autorizzo la libreria ad accedere al mio google
gs_auth(new_user = TRUE)
# elenco i miei documenti
gdocs <- gs_ls()
# carico il documento "prova_R"
fogli_prova_R <- gs_title("prova_R")
# carico il foglio "Foglio1"
foglio_1 <- gs_read(ss=fogli_prova_R, ws = "Foglio1") #, skip=1)
Salvare i dati
Salvare dati testuali
write.table
e write.csv
permettono di scrivere i dati in formato testuale.
write.csv (data_frame, file="tabella1.csv")
# sep="\t" per salvare in tsv
write.table(data_frame, "tabella2.tsv",
sep="\t", row.names=FALSE, col.names=TRUE)
Salvare e caricare oggetti R
saveRDS
e readRDS
permettono di salvare e leggere oggetti R in formato binario.
saveRDS(data_frame, "binario.rds")
data_frame <- readRDS("binario.rds")
Risorse
- Getting data in and out - R Programming for Data Science
- R Data Import/Export
- RPubs - Importing Data Into R Part 1
- Importing Data with RStudio – RStudio Support
- R Tutorial on Reading and Importing Excel Files into R | R-bloggers
- D Loading and Saving Data in R | Hands-On Programming with R
- Input / Output - Efficient R programming
- Writing data to a file