non-uniform 'Rounding' sampler used ?

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

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

non-uniform 'Rounding' sampler used ?

Messagepar Eric Wajnberg » 16 Mai 2024, 09:50

Bonjour à tous,

Depuis quelque temps, lorsque je lance R, j'ai le message (warning ?) suivant :

Code : Tout sélectionner

In sys.load.image("chemin vers le nom du fichier .RData", :
   non-uniform  'Rounding' sampler used


Je soupconnais qu'il y avait peut-être un problème dans ce fichier .RData. J'ai douc tout enlever pour ne laisser qu'un object .First() dans lequel il y a effectivement une fonction load() qui pointe vers un autre fichier .RData, mais le problème reste le même. Et je n'ai de toute façon pas de message d'erreur si je lance ce .First à la main.

Il y a autre chose qui pose problème dans la séquence d'initialisation de R au démarrage, mais je ne trouve rien.

Quelqu'un aurait-il une idée de où peut provenir ce problème ? J'ai chercher des idées en vain sur le web.

Toute aide sur ce point serait la bienvenue.

Amicalement, Eric.

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

Re: non-uniform 'Rounding' sampler used ?

Messagepar Eric Wajnberg » 17 Mai 2024, 06:28

Re-bonjour,

Je complète mon post.

En cherchant sur le web, le problème semble venir d'un changement de générateur de nombres aléatoires lors du passage à des versions de R > R3.6.0 (""Rejection" à la place de "Rounding"). Ceci se défini avec l'argument sample.kind de la fontion RNGkind(). On peut voir la situation par exemple avec la fonction sessionInfo().

On peut re-générer le même message d'erreur, pas exemple avec:

Code : Tout sélectionner

set.seed(1, sample.kind="Rounding")
Warning message:
In set.seed(1, sample.kind = "Rounding") :
  non-uniform 'Rounding' sampler used

Ceci dit, je ne vois toujours pas d'où provient le problème dans mon cas, ni même - donc - comment éviter ce warning qui apparait lors du lancement d'une nouvelle session R. Nulle part dans mes codes (surtout ou lancement) j'utilise un set.seed(). R doit surement faire ceci dans mon dos.

Suis-je le seul à avoir ce problème ? Une idée pour me sortir de ce truc ?

Une fois encore, merci pour toute aide sur ce point.

Cordialement, Eric.

Gabriel Terraz
Messages : 593
Enregistré le : 26 Sep 2011, 15:11

Re: non-uniform 'Rounding' sampler used ?

Messagepar Gabriel Terraz » 17 Mai 2024, 08:48

Bonjour,
Ton premier message n'est pas très clair, mais je crois comprendre que tu as toujours ta fonction .First() qui charge un Rdata au démarrage. Supprime donc cette ligne de code, non ?

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

Re: non-uniform 'Rounding' sampler used ?

Messagepar Eric Wajnberg » 17 Mai 2024, 10:29

Gabriel Terraz a écrit :Bonjour,
Ton premier message n'est pas très clair, mais je crois comprendre que tu as toujours ta fonction .First() qui charge un Rdata au démarrage. Supprime donc cette ligne de code, non ?

Déjà essayé. Ca ne change rien. Qui plus est, comme je l'ai dit, si je lance cette fonction .First() à la main, je n'ai pas le message d'erreur.

A force de creuser, je pense qu'il y a un set.seed() quelque part dans toute la procédure de démarrage de R (qui ne vient pas de moi, donc) qui pose problème.

Dit d'une manière différente, quelqu'un sait-il comment (et surtout où et quand) R initialise ses fonctions de tirage aléatoire ?

Toute autre idée est la bienvenue !

Merci encore, Eric.

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

Re: non-uniform 'Rounding' sampler used ?

Messagepar Eric Wajnberg » 17 Mai 2024, 11:09

Bon, j'avance encore :

Je suis sous Windows, et R est lancé avec la commande :

Code : Tout sélectionner

Rgui.exe --cd-to-userdocs


Si je lance R sans cet argument "--cd-to-userdocs" alors je n'ai plus de message d'erreur.

Cet argument lance R dans sa directory d'accueil par défaut, i.e., C:\Users\user_name\Documents.

Et effectivement, si je vire le .RData dans cette directory, et que je garde l'argument "--cd-to-userdocs", alors je n'ai plus d'erreur. Il y a donc un objet (ou plusieurs) dans ce .RData qui pose problème, mais ce n'est pas le .First(). Quoi d'autres ?

Une fois dans R, si je lance l'instruction suivante :

Code : Tout sélectionner

ls(all.names=TRUE)

(qui me permet de voir tous les objects qui s'y trouvent), je réccupére la liste suivante:

Code : Tout sélectionner

[1] ".First"          ".JavaGuiOptions" ".Last.fixed"     ".Last.value"     ".Random.seed"


Le seul object "suspect" ici est .Random.seed, mais c'est une suite d'entiers (voire la documentation de cet object). Je ne vois pas bien pourquoi ça serait cet object qui poserait problème..

Bref, j'avance, certes, mais je n'ai toujours pas d'idée pour débloquer la situation..

Eric.

Maxime Deniaux
Messages : 73
Enregistré le : 11 Fév 2022, 22:49
Contact :

Re: non-uniform 'Rounding' sampler used ?

Messagepar Maxime Deniaux » 17 Mai 2024, 18:33

Bonsoir,

je suis la conversation, mais je ne peux pas aider. Je ne comprends pas grand chose à cette partie de " l'informatique " si je peux dire ça comme ça.

Mais il me semblait que tu disais que c'était un warning et non un message d'erreur, donc in fine, quel est l'impact de ça sur ton travail par exemple ?
Est-ce que tu as remarqué quelque chose qui n'allait pas au-delà de ce message ?

Ou est-ce que tu as lancé ce sujet juste par "curiosité" on va dire, pour tenter de comprendre pourquoi ça affiche cela.

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

Re: non-uniform 'Rounding' sampler used ?

Messagepar Eric Wajnberg » 17 Mai 2024, 18:46

Non, c'est juste un warning, aux dires de ce qui disent les gens sur le web. Mais ce message d'erreur m'agace, et j'aimerais bien comprendre...

Eric.

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

Re: non-uniform 'Rounding' sampler used ?

Messagepar Eric Wajnberg » 17 Juin 2024, 08:09

Bonjour,

Je relance ce post car le problème n'est toujours pas résolu. J'ai posé la question sur stackoverflow, et il semble que plusieurs personnes ont ce même problème dans le monde.

Mon post peut être consulté ici: https://stackoverflow.com/questions/78631299/r-non-uniform-rounding-sampler-used

Il semblerait qu'il ne soit pas/plus du tout une bonne idée d'utiliser un fichier .RData (!) et de le charger automatiquement en début de session. Il conviendrait d'utiliser .Rprofile à la place.

Tout ceci a à faire avec la séquence des événements qui sont exécutés lorsque R est lancé.

Y a t'il sur ce forum des personnes qui connaissent bien cette procédure (R.profile et séquence de lancement de R dans la machine) ?

Je pense que je sait définir un fichier .Rprofile, mais je ne suis pas convaincu que ceci résolve mon problème.

Toute aide sur ce point reste la bienvenue.

D'avance merci, Eric.

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

Re: non-uniform 'Rounding' sampler used ?

Messagepar Logez Maxime » 18 Juin 2024, 13:18

Bonjour Eric,

Je n'ai pas la solution à ton problème, par contre pour ce qui est des séquences des événements quand R se lance, tu devrais trouver des informations ici : https://cran.r-project.org/web/packages/startup/vignettes/startup-intro.html#:~:text=Rprofile%20file%20if%20it%20exists,time%20you%20install%20a%20package..

Cordialement,
Maxime

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

Re: non-uniform 'Rounding' sampler used ?

Messagepar Eric Wajnberg » 18 Juin 2024, 14:23

Merci !

Eric.

Gabriel Terraz
Messages : 593
Enregistré le : 26 Sep 2011, 15:11

Re: non-uniform 'Rounding' sampler used ?

Messagepar Gabriel Terraz » 19 Juin 2024, 09:23

Bonjour,

Le problème en chargeant ton fichier Rdata c'est que tu charges potentiellement des choses que tu ne maitrises pas.
Pour reproduire ton problème, il te suffit de lancer la commande en question, de sauvegarder la session et de relancer R.

Le Rdata que tu charges 'garde la trace' de ce changement d'option effectué à un moment antérieur

Code : Tout sélectionner

RNGkind(sample.kind = "Rounding")
save.image(file = ".RData")


Le mieux à faire est effectivement de créer un ".Rprofile" dans ton home. Dans celui ci tu mets une fonction ".First()" (tu en as une d'ailleurs car elle est visible dans les objets que tu montres, ou alors elle est dans le RData en question...) qui s'occuperai de faire exactement ce que tu veux.

Je l'utilise pour charger des fonctions que j'utilise tout le temps à l'aide de source().
Dans ton cas, tu pourrais mettre des readRDS() qui te permettrais de charger exactement les objets dont tu as besoin sans charger une session antérieure.

Voilà mon avis

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

Re: non-uniform 'Rounding' sampler used ?

Messagepar Eric Wajnberg » 19 Juin 2024, 11:37

Bonjour et merci.

Lancer les commandes suivantes (c'est si je comprends bien le sens de ton message) :

Code : Tout sélectionner

RNGkind(sample.kind = "Rounding")
save.image(file = ".RData")

ne change rien.

Oui, je sais bien que je charge des choses que je ne vois pas.

Le problème dans cette histoire, c'est que les concepteurs de R ont changé les procédures de tirage aléatoire dans les dernières versions, et c''est la raison pour laquelle j'ai ce problème (et apparemment pas mal d'autres personnes dans le monde).

J'ai résolu (partiellement) mon problème en virant le fichier .RData et en le reconstruisant from scrach manuellement, object après object. Ca marche à peu près ok à présent, mais faudrait pas que les concepteurs de R recommencent cette opération trop fréquemment..

Merci en tout cas à tous pour vos réponses.

Eric.


Retourner vers « Questions en cours »

Qui est en ligne

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