Come esportare dati da R in formato CSV ed Excel

โšก Riepilogo intelligente

Esportare dati da R comprende la scrittura di un data frame in formato CSV, Excel, SPSS, SAS, STATA e formato nativo R, quindi l'invio dello stesso file a Google Drive or DropboxOgni esportazione segue uno schema preciso: una funzione, un data frame e un percorso di destinazione.

  • ๐Ÿ“ La destinazione prima di tutto: La funzione getwd() restituisce la directory di lavoro corrente e qualsiasi nome di file relativo viene scritto in tale directory, a meno che non venga specificato un percorso completo.
  • ๐Ÿ“„ Esportazione CSV: write.csv(df, โ€œfile.csvโ€) รจ l'opzione universale, mentre write.csv2() passa al separatore punto e virgola.
  • ๐Ÿ“— Esportazione in Excel: write.xlsx() dal pacchetto xlsx richiede un'interfaccia funzionante Java installazione sulla macchina.
  • ๐Ÿ”„ Software statistico: Il pacchetto haven scrive file SPSS, SAS e STATA utilizzando le funzioni write_sav(), write_sas() e write_dta().
  • ๐Ÿ’พ Formati nativi: La funzione saveRDS() memorizza un singolo oggetto, mentre save() ne memorizza diversi, preservando in entrambi i casi i livelli dei fattori e gli attributi in modo esatto.
  • โ˜๏ธ Caricamento sul cloud: Google Drive e rdrop2 si autenticano una sola volta per sessione, quindi caricano, scaricano ed eliminano i file direttamente da R.

Esportazione dei dati da R in formato CSV e Excel

Come esportare i dati da R

In questo tutorial impareremo come esportare i dati dall'ambiente R in diversi formati.

Per esportare i dati sul disco rigido, sono necessari il percorso del file e un'estensione. Innanzitutto, il percorso รจ la posizione in cui verranno archiviati i dati. In questo tutorial vedrai come archiviare i dati su:

  • Il disco rigido
  • Google Drive
  • Dropbox

In secondo luogo, R puรฒ scrivere i dati in molti formati. Questo tutorial illustra le estensioni di file essenziali:

  • csv
  • xlsx
  • RDS
  • SAS
  • SPSS
  • STATO

Ogni esportazione segue la stessa struttura: una chiamata di funzione, un frame di dati e un percorso di destinazione.

Esporta su disco rigido

Per iniziare, puoi salvare i dati direttamente nella directory di lavoro. Il seguente codice stampa il percorso della tua directory di lavoro:

directory <- getwd()
directory

Produzione:

## [1] "/Users/15_Export_to_do"

A meno che non si fornisca un percorso completo, ogni file viene scritto in quella directory di lavoro. Il valore predefinito varia a seconda del sistema, in genere la cartella home dell'utente su macOS e Linux e la cartella Documenti su Windowsma getwd() ti dice sempre il valore corrente. Modificalo con setwd() oppure passa semplicemente il percorso completo alla funzione write.

setwd("/Users/USERNAME/Downloads")

Crea frame di dati

Innanzitutto, creiamo un piccolo data frame: la media di mpg e disp raggruppata per marcia dal dataset mtcars.

library(dplyr)
df <-mtcars %>%
    select(mpg, disp, gear) %>%
    group_by(gear) %>%
    summarize(mean_mpg = mean(mpg), mean_disp = mean(disp))
df

Produzione:

## # A tibble: 3 x 3
##	gear mean_mpg mean_disp
##	<dbl>	<dbl>	<dbl>
## 1	3 16.10667  326.3000
## 2 	4 24.53333  123.0167
## 3	5 21.38000  202.4800

La tabella contiene tre righe e tre colonne. รˆ possibile creare un file CSV con la funzione write.csv in R.

Come esportare un DataFrame in un file CSV in R

La sintassi di base di write.csv in R per esportare DataFrame in CSV in R:

write.csv(df, path)
arguments
-df: Dataset to save. Need to be the same name of the data frame in the environment.
-path: A string. Set the destination path. Path + filename + extension i.e. "/Users/USERNAME/Downloads/mydata.csv" or the filename + extension if the folder is the same as the working directory

Esempio:

write.csv(df, "table_car.csv")

Code Spiegazione

  • write.csv(df, โ€œtable_car.csvโ€): crea un file CSV nel disco rigido:
    • df: nome del frame di dati nell'ambiente
    • โ€œtable_car.csvโ€: nomina il file table_car e memorizzalo come csv

Note:: write.csv2() scrive lo stesso file utilizzando un punto e virgola come separatore di campo e una virgola come separatore decimale, che รจ la convenzione in gran parte dell'Europa continentale.

write.csv2(df, "table_car.csv")

Note:A solo scopo didattico, abbiamo creato una funzione chiamata open_folder() per aprire la cartella. รˆ sufficiente eseguire il codice seguente per visualizzare la posizione del file CSV. Dovreste trovare un file denominato table_car.csv.

# Run this code to create the function
open_folder <-function(dir){
	if (.Platform['OS.type'] == "windows"){
	shell.exec(dir)  
	} else {
	system(paste(Sys.getenv("R_BROWSER"), dir))
  }
}
# Call the function to open the folder
open_folder(directory)

Come esportare un DataFrame in un file Excel in R

L'esportazione in Excel รจ semplice su Windows e leggermente piรน complicato su macOSEntrambi utilizzano la libreria xlsx e la differenza รจ solo nell'installazione, perchรฉ xlsx dipende da Java. Java deve essere presente sulla macchina affinchรฉ il pacchetto venga caricato.

Windows utenti

On Windows, installa la libreria direttamente con conda:

conda install -c r r-xlsx

Una volta installata la libreria, la funzione write.xlsx() crea una nuova cartella di lavoro di Excel nella directory di lavoro:

library(xlsx)
write.xlsx(df, "table_car.xlsx")

Se sei un utente Mac OS, devi seguire questi passaggi:

  • Passaggio 1: installa l'ultima versione di Java
  • Passaggio 2: installare la libreria rJava
  • Passaggio 3: installa la libreria xlsx

Passo 1) Potresti scaricare Java da ufficiale Oracle sito e installarlo.

Puoi tornare a Rstudio e verificare quale versione di Java รจ installato.

system("java -version")

Qualsiasi recente Java Il rilascio funziona. Se il comando non segnala nulla, Java non รจ installato e il pacchetto xlsx non verrร  caricato.

Passo 2) Devi installare rjava in R. Ti consigliamo di installare R e Rstudio con Anaconda. Anaconda gestisce le dipendenze tra le librerie. In questo senso, Anaconda gestirร  le complessitร  di rJava installazione.

Prima di tutto, devi aggiornare conda e quindi installare il file libreria. Puoi copiare e incollare le prossime due righe di codice nel terminale.

conda update conda
conda install -c r r-rjava

Successivamente, apri rjava in Rstudio

library(rJava)

Passo 3) Finalmente รจ il momento di installare xlsx. Ancora una volta, puoi usare contea per farlo:

conda install -c r r-xlsx

Proprio come gli utenti Windows, puoi salvare i dati con la funzione write.xlsx()

library(xlsx)

Produzione:

## Loading required package: xlsxjars
write.xlsx(df, "table_car.xlsx")

Esportazione dei dati da R a software diversi

Esportare dati su software diversi รจ semplice come importarli. La libreria "haven" fornisce un modo comodo per esportare dati su

  • SPSS
  • sas
  • Stata

Per prima cosa, importa la libreria. Se non hai "haven", puoi andare Qui. per installarlo.

library(haven)

File SPSS

Di seguito รจ riportato il codice per esportare i dati nel software SPSS:

write_sav(df, "table_car.sav")

File SAS

Semplice come spss, puoi esportare in sas

write_sas(df, "table_car.sas7bdat")

file STATA

Infine, la libreria haven consente la scrittura di file .dta.

write_dta(df, "table_car.dta")

Come esportare i dati nei formati nativi di R

Se si desidera mantenere l'oggetto all'interno di R anzichรฉ passarlo a un altro programma, utilizzare uno dei due formati nativi. La funzione save() scrive uno o piรน oggetti denominati in un file .RData:

save(df, file ='table_car.RData')

L'alternativa รจ saveRDS(), che memorizza esattamente un oggetto e consente al lettore di sceglierne il nome al momento del ritorno:

# One object, name chosen at read time
saveRDS(df, file = "table_car.rds")
my_data <- readRDS("table_car.rds")

# Several objects, original names restored
save(df, directory, file = "workspace.RData")
load("workspace.RData")
Criteri saveRDS() / readRDS() salva() / carica()
Oggetti per file Esattamente uno Uno o molti
Nome dell'oggetto al ricaricamento Lo scegli tu Ripristinato come salvato
Sovrascrive l'ambiente Non Sรฌ, in silenzio
Prolungamento abituale .rds .RData

รˆ preferibile utilizzare saveRDS() negli script, poichรฉ load() puรฒ sovrascrivere silenziosamente un oggetto esistente con lo stesso nome. Entrambi i formati mantengono intatti i livelli dei fattori, l'ordine e gli attributi, cosa che il formato CSV non puรฒ fare.

Puoi controllare i file creati sopra nella directory di lavoro attuale

Esporta dati da R a file STATA

Interagisci con i servizi cloud

, Ultimo, ma non meno importante R รจ dotato di fantastiche librerie per interagire con i servizi di cloud computing. L'ultima parte di questo tutorial riguarda l'esportazione/importazione di file da:

  • Google Drive
  • Dropbox

Note:: Questa parte del tutorial presuppone che tu abbia un account con Google and Dropbox. In caso contrario, puoi crearne rapidamente uno per: Google Drive: https://accounts.google.com/SignUp?hl=en - Dropbox: https://www.dropbox.com/h

Google Drive

รˆ necessario installare la libreria googledrive per accedere alla funzione che consente di interagire con Google Drive.

La biblioteca non รจ ancora disponibile su Anaconda. Puoi installarlo con il codice seguente nella console.

install.packages("googledrive")

e apri la libreria.

library(googledrive)

Per chi non usa conda, installare una libreria รจ semplice: basta usare `install.packages('NOME DEL PACCHETTO')` con il nome del pacchetto tra virgolette all'interno delle parentesi. R lo installerร  nella prima posizione restituita da `.libPaths()`.

Carica su Google Drive

Per caricare un file su Google Per caricare un'unitร , รจ necessario utilizzare la funzione drive_upload().

Ogni volta che riavvii Rstudio, ti verrร  richiesto di consentire l'accesso a tidyverse Google Drive.

La sintassi di base di drive_upload() รจ

drive_upload(file, path = NULL, name = NULL)
arguments:
- file: Full name of the file to upload (i.e., including the extension)
- path: Location of the file- name: You can rename it as you wish. By default, it is the local name.

Dopo aver avviato il codice, รจ necessario confermare diverse domande

drive_upload("table_car.csv", name = "table_car")

Produzione:

## Local file: 
## * table_car.csv 
## uploaded into Drive file: 
## * table_car: 1hwb57eT-9qSgDHt9CrVt5Ht7RHogQaMk 
## with MIME type: 
## * text/csv

Digiti 1 nella console per confermare l'accesso

Google Drive

Quindi, verrai reindirizzato a Google API per consentire l'accesso. Fare clic su Consenti.

Google Drive

Una volta completata l'autenticazione, puoi chiudere il browser.

Google Drive

Nella console di RStudio รจ possibile visualizzare il riepilogo dei passaggi eseguiti. Google File caricato correttamente in locale su Drive. Google รจ stato assegnato un ID a ciascun file presente nell'unitร .

Google Drive

Puoi vedere questo file in Google Spreadsheet.

drive_browse("table_car")

Produzione:

Sarai reindirizzato a Google Spreadsheet

Google Drive

Importare da Google Drive

Scaricare il file tramite ID รจ il metodo piรน affidabile. Se conosci il nome del file, recupera prima il suo ID:

Note:: A seconda della connessione Internet e delle dimensioni dell'unitร , l'operazione richiede del tempo.

x <-drive_get("table_car")
as_id(x)

Google Drive

Hai memorizzato l'ID nella variabile x. La funzione drive_download() consente di scaricare un file da Google Drive.

La sintassi di base รจ:

drive_download(file, path = NULL, overwrite = FALSE)
arguments:
- file:  Name or id of the file to download
-path: Location to download the file. By default, it is downloaded to the working directory and the name as in Google Drive
-overwrite = FALSE: If the file already exists, don't overwrite it. If set to TRUE, the old file is erased and replaced by the new one.

Puoi finalmente scaricare il file:

download_google <- drive_download(as_id(x), overwrite = TRUE)

Code Spiegazione

  • drive_download(): funzione da cui scaricare un file Google Drive
  • as_id(x): utilizza l'ID per sfogliare il file Google Drive
  • overwrite = TRUE: se il file esiste, lo sovrascrive, altrimenti l'esecuzione viene interrotta. Per vedere il nome del file localmente, puoi usare:

Produzione:

Google Drive

Il file viene salvato nella directory di lavoro. Ricorda di aggiungere l'estensione del file prima di aprirlo in R. Puoi creare il nome completo con la funzione paste() (ad esempio table_car.csv).

google_file <-download_google$local_path
google_file
path <-paste(google_file, ".csv", sep = "")
google_table_car <-read.csv(path)
google_table_car

Produzione:

##   X gear mean_mpg mean_disp
## 1 1    3 16.10667  326.3000
## 2 2    4 24.53333  123.0167
## 3 3    5 21.38000  202.4800

Infine, puoi rimuovere il file dal tuo Google guidare.

## remove file
drive_find("table_car") %>%drive_rm()

Produzione:

Google Drive

La cancellazione viene elaborata in modo asincrono da Google, quindi il file potrebbe impiegare qualche istante per scomparire.

Esporta a Dropbox

R interagisce con Dropbox tramite la libreria rdrop2. La biblioteca non รจ disponibile anche su Anaconda. Puoi installarlo tramite la console

install.packages('rdrop2')
library(rdrop2)

Concedi l'accesso temporaneo a Dropbox con le tue credenziali. Una volta autenticato, R puรฒ creare, rimuovere, caricare e scaricare file nel tuo Dropbox.

Prima di tutto, devi dare accesso al tuo account. Le credenziali vengono memorizzate nella cache durante tutta la sessione.

drop_auth()

Sarai reindirizzato a Dropbox per confermare l'autenticazione.

Esporta a Dropbox

Riceverai una pagina di conferma. Puoi chiuderlo e tornare a R

Esporta a Dropbox

Puoi creare una cartella con la funzione drop_create().

  • drop_create('my_first_drop'): Crea una cartella nel primo ramo di Dropbox
  • drop_create('First_branch/my_first_drop'): crea una cartella all'interno della cartella First_branch esistente.
drop_create('my_first_drop')

Produzione:

Esporta a Dropbox

In cadutaBox

Esporta a Dropbox

Per caricare il file .csv nel tuo Dropbox, utilizzare la funzione drop_upload().

Sintassi di base:

drop_upload(file, path = NULL, mode = "overwrite")
arguments:
- file: local path
- path: Path on Dropbox 
- mode = "overwrite":  By default, overwrite an existing file. If set to `add`, the upload is not completed.
drop_upload('table_car.csv', path = "my_first_drop")

Produzione:

Esporta a Dropbox

Alla cadutaBox

Esporta a Dropbox

Puoi leggere il file CSV da Dropbox con la funzione drop_read_csv()

dropbox_table_car <-drop_read_csv("my_first_drop/table_car.csv")
dropbox_table_car

Produzione:

##   X gear mean_mpg mean_disp
## 1 1    3 16.10667  326.3000
## 2 2    4 24.53333  123.0167
## 3 3    5 21.38000  202.4800

Quando hai finito di utilizzare il file e desideri eliminarlo. Devi scrivere il percorso del file nella funzione drop_delete()

drop_delete('my_first_drop/table_car.csv')

Produzione:

Esporta a Dropbox

รˆ anche possibile eliminare una cartella

drop_delete('my_first_drop')

Produzione:

Esporta a Dropbox

Esportazione dei dati da R: Riferimento alla funzione

Di seguito รจ riportato l'elenco di tutte le funzioni di esportazione utilizzate in questo tutorial:

Biblioteca Obiettivo Funzione
base Esporta CSV scrivere.csv()
xlsx Esporta Excel scrivere.xlsx()
porto Esporta spss write_sav()
porto Esportazione sas write_sas()
porto Stato di esportazione write_dta()
base Esporta oggetti R salva() / salvaRDS()
Google Drive Caricare Google Drive caricamento_unitร ()
Google Drive aprire in Google Drive guida_sfoglia()
Google Drive Recupera l'ID del file unitร _get(as_id())
Google Drive Scarica da Google Drive drive_download()
Google Drive Rimuovi file da Google Drive unitร _rm()
rdrop2 Autenticazione drop_auth()
rdrop2 Crea una cartella drop_crea()
rdrop2 Carica su Dropbox drop_upload()
rdrop2 Leggi CSV da Dropbox drop_read_csv()
rdrop2 Elimina file da Dropbox drop_delete()

DOMANDE FREQUENTI

La funzione saveRDS() memorizza un singolo oggetto, mentre readRDS() consente di assegnargli un nome qualsiasi. La funzione save() memorizza piรน oggetti e load() ripristina i loro nomi originali, sovrascrivendo silenziosamente le variabili giร  presenti nell'ambiente.

Per impostazione predefinita, write.csv() scrive i nomi delle righe come prima colonna senza nome. Passare row.names = FALSE per disabilitarlo, altrimenti la reimportazione del file produrrร  una colonna X indesiderata.

Utilizzare writexl::write_xlsx() o openxlsx::write.xlsx(). Entrambi scrivono file .xlsx in puro R senza Java dipendenza, che evita la rJava configurazione richiesta dal pacchetto xlsx.

Utilizza RDS o Parquet anzichรฉ CSV. Entrambi preservano i tipi di colonna e i livelli dei fattori, garantendo che un set di dati di addestramento venga ricaricato in modo identico. Il formato CSV converte silenziosamente i tipi di dati ed รจ una causa comune di risultati di modello non riproducibili.

Sรฌ. Gli assistenti IA possono diagnosticare errori di autorizzazione, directory di lavoro errate e mancanti Java per il pacchetto xlsx. Confermare sempre la destinazione con getwd() prima di fidarsi di un percorso suggerito.

Riassumi questo post con: