web-dev-qa-db-fra.com

R sur MacOS Erreur: mémoire de vecteur épuisée (limite atteinte?)

J'essaie de lancer un script R (en particulier, j'utilise la fonction "getLineages" du paquet Bioconductor, Slingshot .

Je me demande pourquoi l’erreur "Mémoire de vecteur épuisée (limite atteinte?)" S’affiche lorsque j’utilise cette fonction, car elle ne semble pas être la plus gourmande en mémoire comparée aux autres fonctions de ce paquetage (avec les données que j'analyse).

Je comprends qu’il existe d’autres questions comme celle-ci sur Stackoverflow, mais elles suggèrent toutes de passer à la version 64 bits de R. Cependant, j’utilise déjà cette version. Il semble n'y avoir aucune autre réponse à cette question à ce jour, je me demandais si quelqu'un pourrait savoir?

La taille des données n’est que de ~ 120 Mo, ce qui est bien inférieur aux 8 Go de RAM de mon ordinateur.

R 64 bit version

37
Anjan Bharadwaj

Pour ceux qui utilisent Rstudio, j'ai constaté que la définition de Sys.setenv('R_MAX_VSIZE'=32000000000), comme cela a été suggéré pour plusieurs publications StackOverflow, ne fonctionne que sur la ligne de commande et que la définition de ce paramètre lors de l'utilisation de Rstudio n'empêche pas cette erreur:

Error: vector memory exhausted (limit reached?)

Après avoir lu un peu plus, j'ai trouvé le fil this , qui clarifie le problème avec Rstudio et identifie une solution, illustrée ci-dessous:

Étape 1: Ouvrez le terminal,

Étape 2:

cd ~
touch .Renviron
open .Renviron

Étape 3: Enregistrez les éléments suivants en tant que première ligne de .Renviron:

R_MAX_VSIZE=100Gb 

Remarque: cette limite inclut à la fois la mémoire physique et virtuelle. la définition de _MAX_VSIZE = 16 Go sur un ordinateur doté de 16 Go de mémoire physique ne peut donc pas empêcher cette erreur. Vous devrez peut-être jouer avec ce paramètre, en fonction des spécifications de votre machine.

39
Graeme Frost