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.