Ecriture d'objets R dans un fichier texte

Questions sur les objets de R et la manipulation des données

Modérateur : Groupe des modérateurs

Sébastien Hamel
Messages : 71
Enregistré le : 11 Mai 2006, 08:00

Ecriture d'objets R dans un fichier texte

Messagepar Sébastien Hamel » 17 Juil 2006, 06:40

Je souhaite enregistrer plusieurs objets présents dans différents fichiers R au sein d'un même fichier.txt.

par exemple:
dans 'herb.r': j'ai un programme qui calcul les objets taille, longueur
dans 'fleuve.r': j'ai de même largeur, débit

je souhaiterais donc retrouver toutes ces variables dans un même fichier nommé par exemple 'valeurs_calculées.txt'.

Comment puis-je faire?
Et est-il possible de préciser l'emplacement dans le fichier.txt, à savoir à la ligne 1 mettre taille et sa valeur associée & ainsi de suite.....?

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 17 Juil 2006, 07:14

Si toutes les variables sont des vecteurs de même longueur, il est possible de les rassembler dans un data.frame. Si ce sont des objets quelconques (vecteurs, matrices, data.frame, modèles ajustés...), les stocker dans une liste. Dans les deux cas, les composantes peuvent être nommées. Ensuite, voir une des méthodes de sauvegarde déjà exposées sur ce forum. Exemple:

Code : Tout sélectionner

> val_calc
$taille
[1] 14.02147 13.76992 19.24132 19.69232 15.54203

$longueur
[1] 297.3361 217.5351 204.4580

> dump(list = "val_calc", file = "val.calc.txt")


Ce qui produit un fichier nommé val.calc.txt qui se trouve dans le répertoire par défaut et qui se présente comme ceci quand on l'ouvre avec un éditeur de texte:

Code : Tout sélectionner

"val_calc" <-
structure(list(taille = c(14.0214692335576, 13.7699157907628,
19.2413242789917, 19.6923164231703, 15.5420278199017), longueur = c(297.336129541509,
217.535092704929, 204.458009009250)), .Names = c("taille", "longueur"
))


Si l'objectif est de récupérer ces objets dans un logiciel de traitement de texte, il vaut mieux les rassembler dans un data.frame ou une matrice, et utiliser write.table pour générer le fichier texte. Certains packages (xtable, R2HTML, ...) proposent des utilitaires pour automatiser la création de tableaux au format HTML ou LaTeX. Déjà discuté ici également.

Renaud

Sébastien Hamel
Messages : 71
Enregistré le : 11 Mai 2006, 08:00

Messagepar Sébastien Hamel » 17 Juil 2006, 14:26

Renaud Lancelot a écrit :Si l'objectif est de récupérer ces objets dans un logiciel de traitement de texteRenaud


Mon objectif est de récupérer ces objets pour construire un graphique tjs sous R

donc comment puis-je recharger les données?

Avec save, je sais qu'il faut utiliser load
mais avec dump, que dois-je utiliser?

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 17 Juil 2006, 14:38

La réponse est dans la description de la fonction dump. Voir ?dump (première ligne).

Cela dit je ne comprends pas pourquoi vous vous cassez la tête: il est plus simple de laisser les objets dans l'espace de travail et de les utiliser à la demande pour faire les graphes ou autre chose.

Pour ma part, je ne stocke jamais les espaces de travail ou leur contenu: on finit par s'y perdre, ou créer des objets de même nom. En revanche, je garde le script de toutes mes analyses et les relance selon mes besoins.

Renaud


Retourner vers « Archives : Manipulation de données avec R »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité