Indice
Esportare i dati in formato csv
I formati txt e csv sono formati di esportazione/importazione universale. Tutti i programmi consentono infatti di importare i files da uno di questi formati, o da entrambi. Il formato migliore di interscambio dei dati fra R e altre applicazioni di gestione ed analisi dei dati è senz'altro il formato CSV (v. anche Importare i dati in R).
La funzione write.table
La funzione write.table() esporta un file dopo averlo convertito in dataframe, cioè in oggetto a due dimensioni.
Per questione di compatibilità, è necessario fare attenzione da una parte al separatore di campo (cioè delle colonne), e dall’altra al separatore dei decimali (la virgola come in italiano, l’inglese come standard scientifico o internazionale) desiderato nel file esportato (vedi Formati numerici).
Per quanto riguarda la struttura del dataset:
- se esiste una variabile con gli identificativi di caso (riga), è preferibile esplicitare l’argomento
row.names = FALSE; - è anche preferibile definire il codice per i dati mancanti, con l’argomento
na =.
# dati library(carData) data(SLID)
Esempi
Negli esempi che seguono, il file di dati è esportato secondo gli standard italiani:
Formato csv
write.table(SLID, "SLID.csv", sep = ";", # punto e virgola row.names = FALSE, # se abbiamo la variabile ID dec = ",", # separatore di decimali na = "", # dati mancanti come celle vuote quote = TRUE )
Formato testo tab-delimited
write.table(SLID, "SLID.txt", sep = "\t", # tabulazione row.names = FALSE, dec = ",", na = "" )
La funzione expdata
La funzione expdata(), del pacchetto LabRS, facilita l’esportazione di un dataframe in formato csv (separatore di decimali = virgola, NA = celle vuote, col.names = NA):
Il pacchetto accompagna il libro *“Ricerca sociale con R”* ed è disponibile da CRAN e su GitHub (le istruzioni per installarlo sono alla pagina LabRS.
- es_expdata.R
library(LabRS) expdata(SLID, file = "SLID.csv")
La funzione write.csv2
Affinché il file csv sia valido per gli standard italiani, gli argomenti della funzione write.csv2() sono impostati di default nel seguente modo:
| parametro | write.table | write.csv2 | |
|---|---|---|---|
| sep | separatore delle migliaia | , | ; |
| dec | separatore dei decimali | . | , |
Script di esempio (download)
- Esportazione_csv.R
require(carData) data(SLID) # csv write.table(SLID, "SLID.csv", sep = ";", # punto e virgola row.names = FALSE, # se abbiamo la variabile ID dec = ",", # separatore di decimali na = "", # dati mancanti come celle vuote quote = TRUE ) # tab delimited write.table(SLID, "SLID.txt", sep = "\t", # tabulazione row.names = FALSE, dec = ",", na = "" ) # expdata() library(LabRS) expdata(SLID, file = "SLID.csv")
