objets et fichiers .RData

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Bastien Gamboa
Messages : 151
Enregistré le : 13 Jan 2011, 21:31

Re: objets et fichiers .RData

Messagepar Bastien Gamboa » 11 Avr 2018, 07:12

Bonjour,

Une question peut-être naïve : est-ce qu'il n'y aurait pas un rm(list=ls(all=TRUE)) qui traîne dans les fichiers chargés automatiquement par R au démarrage (par exemple le fichier etc/Rprofile.site) ?

HTH,
Bastien

Eric Wajnberg
Messages : 776
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: objets et fichiers .RData

Messagepar Eric Wajnberg » 11 Avr 2018, 07:16

Beh non.

J'ai bien tous mes objets chargés correctement au lancement. C'est juste pas les bons. Aucun objet n'est détruit.

Eric.

Eric Wajnberg
Messages : 776
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: objets et fichiers .RData

Messagepar Eric Wajnberg » 11 Avr 2018, 13:07

Ce truc là commence à vraiment m'énerver, et je creuse encore pour comprendre ce qui se passe. J'avance. En fait, plus précisément, voici ce qui se passe.

Lorsque je lance R, par défaut le fichier .RData qui est chargé est celui qui se trouve à l'endroit indiqué par :

Code : Tout sélectionner

Sys.getenv("HOME")

Imaginons que dans cet environnement de travail, j'ai un objet dont le nom est "objet1".

A présent, je rentre dans R en double-clickant (Windows) sur un fichier .RData particulier, situé à un autre endroit. Imaginons qu'il y ait, dans cet autre environnement de travail, un objet du même nom "objet1" mais donc le contenu est différent.

Et bien dans ce cas, ce nouvel objet ne remplace pas l'objet du même nom qui est dans le .RData se trouvant à l'endroit indiqué par :

Code : Tout sélectionner

Sys.getenv("HOME")

Bon, je sais c'est tordu, mais j'ai des objets de même noms, à plusieurs endroits, et qui ont des contenus différents.

Mais ce n'est pas logique, pas pour moi. Je sollicite un nouvel objet de nom "objet1" et je pensais que celui-ci "écrasait" l'ancien, comme si je définissais - dans une session R - un objet avec un nom qui existe déjà.

Quelqu'un aurait une explication ici ?

Cordialement, Eric.

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: objets et fichiers .RData

Messagepar Logez Maxime » 11 Avr 2018, 14:23

Je n'ai pas réussi a reproduire ton erreur. J'ai crée un .Rdata dans le répertoire HOME et un autre dans le répertoire de travail tout deux avec un même objet et quand je double clique sur le fichier .Rdata du répertoire de travail j'ai bien le bon objet.

Est-ce que tu as regardé dans les fichiers Rprofile s'il n'y avait pas quelque part une ligne de commande qui force le chargement d'un .Rdata en particulier ?

Cordialement,
Maxime

Eric Wajnberg
Messages : 776
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: objets et fichiers .RData

Messagepar Eric Wajnberg » 11 Avr 2018, 16:03

Merci Maxime,

Non, rien dans le Rprofile.

Je viens de faire l'essai à l'instant sur une autre de mes machines. Exactement le même problème.

Mais je progresse encore :

Il se trouve que dans le répertoire par défaut où R se lance, le .RData qui est chargé contient une fonction .First() qui elle-même charge (load) un autre .RData qui est dans mon répertoire de travail par défaut.

Je pense que là réside l'explication de mes problèmes. Tout se passe comme si, lorsque je double-click un fichier .RData particulier, celui-ci se charge (peut-être, j'imagine que oui), mais après, et seulement après, la fonction .First() est trouvée et un autre .RData est monté en mémoire.

Je ne vois donc pas comment sortir de cette impasse, sinon lancer, une fois dans R, un load() à chaque fois que je travaille dans un répertoire particulier..

Pourtant, mon problème est simple :

J'ai un certain nombre d'objets en commun dont j'ai besoin partout, et ces objets sont dans un .RData qui n'est pas dans le répertoire par défaut dans lequel R se lance. Et j'ai d'autres objets spécifiques à des situations particulières dans des répertoires différents.

Tout mes problèmes viennent que j'ai parfois des objets à ces différents endroits qui ont le même nom (ce qui est pratique parfois). Il faut que je réorganise tout pour avoir à chaque fois des noms d'objet différents..

J'imagine que ceci clôt la discussion..

Merci pour votre disponibilité à tous, Eric.

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: objets et fichiers .RData

Messagepar Mickael Canouil » 12 Avr 2018, 08:33

Bonjour,

pour éviter le chargement automatique du ".Rdata" au lancement de R, vous pouvez ajouter l'option "--no-restore-data" à votre raccourci R et chargez manuellement les ".Rdata" au début de vos scripts dans l'ordre souhaité (voire utiliser votre ".Rprofile").

Cependant, d'un point de vue personnel, je considère que l'utilisation des options de sauvegarde/chargement de session via le ".Rdata" est une mauvaise pratique qui nuit à la reproductibilité du code (Je recommande de lancer R via: "R --no-save --no-restore-data").
Il existe de nombreux outils simplifiant la création d'un package R, qui peut contenir à la fois des données et des fonctions (en l’occurrence tout ce que vous chargez depuis le ".Rdata" de votre "HOME").

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Eric Wajnberg
Messages : 776
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: objets et fichiers .RData

Messagepar Eric Wajnberg » 12 Avr 2018, 08:37

Merci.

Il reste que la définition et l'utilisation d'une fonction .First() pour paramétrer l'environnement de travail au lancement de R est bien pratique (et souple), ce qui implique de facto le chargement du .RData au lancement de R.

Merci en tout cas pour votre temps.

Cordialement, Eric.

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: objets et fichiers .RData

Messagepar Mickael Canouil » 12 Avr 2018, 08:54

Pour éclaircir les mystères de la séquence d'amorçage de R : https://csgillespie.github.io/efficient ... #r-startup

EDIT: le reste du livre donne de bonne astuces sur différent aspect de la programmation sous R ;)
Mickaël
mickael.canouil.fr | rlille.fr

Eric Wajnberg
Messages : 776
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: objets et fichiers .RData

Messagepar Eric Wajnberg » 12 Avr 2018, 09:01

Oui, oui, merci.

Tout ceci est (bien) expliqué dans le document "An introduction to R", notamment (et de manière bien plus détaillée) dans l'appendix B (entre autres). Ce document est fourni avec chaque release (et accessible par le menu Aide -> Manuels (en PDF)).

Encore merci pour votre disponibilité.

Cordialement, Eric.


Retourner vers « Questions en cours »

Qui est en ligne

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