Come salvare un data.frame in R?


137

Ho creato un data.frame in R che non è molto grande, ma ci vuole un po 'di tempo per costruirlo. Vorrei salvarlo come file, che posso aprire di nuovo in R?

Risposte:


176

Esistono diversi modi. Un modo è usare save()per salvare l'oggetto esatto. ad es. per il frame di dati foo:

save(foo,file="data.Rda")

Quindi caricalo con:

load("data.Rda")

È inoltre possibile utilizzare write.table()o qualcosa del genere per salvare la tabella in testo normale o dput()per ottenere il codice R per riprodurre la tabella.


2
Esistono anche dumpfile creati source(), anche se la help(dump)pagina dice save"più sicura".
— IRTFM

4
Preferisco sempre archiviare i dati in testo semplice, quindi preferirei dump()ancora save()e write.table()ancoradump()
— Sacha Epskamp il

Sono corretto che write.table non conserverà cose come aver impostato una colonna di 0 e 1 come fattore, ma che save()/ load()volontà? Se è così, anche questo è qualcosa da prendere in considerazione. In genere ho una sezione di elaborazione di alcuni file .csv e una volta che li trovo dove mi piacciono, preferisco salvarli, quindi non devo rieseguire quel codice ogni volta che visito nuovamente il mio progetto. Pertanto, è importante considerare che il lavoro / le modifiche alla struttura sono importanti.
— Hendy,

4
Sì. dump()salva anche la struttura. La cosa bella write.tableè che scrive le tabelle in un modo che molti software possono importare.
— Sacha Epskamp,

2
Ciò consente di risparmiare piuttosto che solo il frame di dati. Vedere saveRDSper salvare un dataframe senza il suo nome (dhendrickson ha una risposta su questo).
— Patrick,

91

Se stai salvando solo un singolo oggetto (il tuo frame di dati), puoi anche usarlo saveRDS.
Salvare:

saveRDS(foo, file="data.Rda")

Quindi leggilo con:

bar <- readRDS(file="data.Rda")

La differenza tra saveRDSe saveè che nel primo solo un oggetto può essere salvato e il nome dell'oggetto non è forzato ad essere lo stesso dopo averlo caricato.


1

Supponiamo che tu abbia un frame di dati che hai creato e chiamato "Data_output", puoi semplicemente esportarlo nella stessa directory usando la sintassi seguente.

write.csv (Data_output, "output.csv", row.names = F, quote = F)

credito a Peter e Ilja, UMCG, Paesi Bassi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.