152 votes

Comment sauvegarder un data.frame en R ?

J'ai créé un data.frame dans R qui n'est pas très grand, mais qui prend beaucoup de temps à construire. Je voudrais le sauvegarder dans un fichier, que je pourrais ensuite ouvrir dans R ?

197voto

Sacha Epskamp Points 14956

Il y a plusieurs façons de procéder. L'une d'entre elles consiste à utiliser save() pour sauvegarder l'objet exact. Par exemple, pour une trame de données foo :

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

Puis le charger avec :

load("data.Rda")

Vous pouvez également utiliser write.table() ou quelque chose comme ça pour sauvegarder le tableau en texte brut, ou encore dput() pour obtenir le code R permettant de reproduire le tableau.

2 votes

Il existe également dump et les fichiers créés seraient source() -ed, bien que le help(dump) page dit save est plus "sûr".

4 votes

Je préfère toujours stocker les données en texte brut, donc je préférerais dump() sur save() et write.table() sur dump()

0 votes

Ai-je raison de dire que write.table ne préservera pas les choses comme le fait d'avoir mis en place une colonne de 0 et de 1 comme facteur, mais que save() / load() volonté ? Si c'est le cas, c'est également un élément à prendre en compte. J'ai généralement une section de traitement de certains fichiers .csv et, une fois que je les ai obtenus à mon goût, je préfère les enregistrer pour ne pas avoir à réexécuter ce code chaque fois que je revisite mon projet. Il est donc important d'envisager de préserver ce travail/ces modifications de la structure.

99voto

dhendrickson Points 137

Si vous ne sauvegardez qu'un seul objet (votre cadre de données), vous pouvez également utiliser la fonction saveRDS .
Pour économiser :

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

Alors lisez-le avec :

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

La différence entre saveRDS et save est que dans le premier, un seul objet peut être sauvegardé et que le nom de l'objet n'est pas obligé d'être le même après son chargement.

2voto

Nigus Asefa Points 11

Si vous avez un cadre de données nommé df vous pouvez simplement l'exporter dans le même répertoire avec :

write.csv(df, "output.csv", row.names=FALSE, quote=FALSE) 

crédit à : Peter et Ilja, UMCG, Pays-Bas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X