Comment Corriger l’erreur R impossible d’allouer un vecteur de taille

Le message d’erreur « impossible d’allouer un vecteur de taille » est un problème d’allocation de mémoire qui peut survenir lors du traitement d’une grande quantité de données. Cela n’implique pas nécessairement une erreur de codage dans votre script R, mais il existe des situations où il existe une solution de codage. Le défi ici n’est pas tant de trouver la source du problème mais de trouver la meilleure solution.

Les circonstances de cette erreur.

Le message d’erreur de mémoire « impossible d’allouer un vecteur de taille » se produit lorsque vous créez ou chargez une très grande quantité de données qui prend beaucoup d’utilisation de la mémoire virtuelle. Lorsqu’il s’agit d’ensembles de données aussi volumineux, il est possible de manquer de mémoire utilisable. Cela se produit très probablement lorsqu’un ensemble de données est chargé à partir d’une source externe telle qu’un package ou un autre type de fichier. En effet, vous ne pouvez pas contrôler la taille d’un objet contenu dans une source que vous n’avez pas créée. Il est plus probable qu’il se produise lors de l’accès à la fonction pour charger ou créer un vecteur ou un autre ensemble de données. Ils peuvent également se produire avec des objets plus petits si vous avez un très grand nombre d’objets dans votre programme.

Qu’est-ce qui cause cette erreur?

La cause du message d’erreur « impossible d’allouer un vecteur de taille » est un problème d’allocation de mémoire virtuelle. Il résulte principalement d’objets volumineux dont la taille de vecteur dépasse la limite de mémoire pour le projet. Cela peut également se produire parce que vous avez un grand nombre d’objets individuels qui, ensemble, dépassent la limite de mémoire maximale pour le projet. Maintenant, cela peut être une question de manque d’espace d’utilisation de la mémoire physique sur votre ordinateur ou de limites de taille de mémoire maximale définies par le logiciel, cela est le plus susceptible de se produire si vous exécutez le RStudio 32 bits sur une machine 64 bits. Si vous avez un ordinateur assez récent, il est très peu probable que vous rencontriez cette erreur d’objet en raison de l’épuisement de la mémoire physique, sauf si vous travaillez avec des quantités extrêmement importantes de données dans une chaîne de caractères ou un calcul.

Comment corriger cette erreur.

Le message d’erreur de problème de mémoire « impossible d’allouer un vecteur de taille » a plusieurs solutions de code R. La meilleure chose à propos de ces solutions est qu’aucune d’entre elles n’est trop compliquée, la plupart sont un processus simple et facile à faire dans votre script R.

  • La solution la plus simple consiste à éviter d’utiliser des objets trop volumineux ou un nombre trop important d’entre eux dans un programme ou une session R, par exemple essayez de supprimer les objets inutiles de votre calcul pour mieux s’adapter à votre allocation totale de mémoire.
  • Lors de la lecture dans un fichier externe, enfermez la fonction read() dans une fonction subset(), ce qui donne le format de subset(read.(« filename », header=TRUE), select= c (colonnes à conserver)) cela réduira la taille des objets individuels créés en supprimant les colonnes indésirables.
  • Vous pouvez effacer les objets inutiles à l’aide de la fonction rm().
  • Vous pouvez nettoyer l’espace d’adressage à l’aide de la fonction gc().
  • Vous pouvez également tester une limite à la mémoire en utilisant la mémoire.limit() et définissez une valeur plus élevée avec le format de mémoire.limite (taille = nombre).
  • Arrêtez tous les programmes que vous n’utilisez pas pour libérer de l’espace supplémentaire.

Trouver le meilleur processus pour corriger cette erreur peut prendre des essais et des erreurs, mais ils ne sont ni difficiles ni longs. Bien que ce message d’erreur ne soit pas un problème de codage, il n’est toujours pas difficile à résoudre au sein de votre session R.

Erreur R impossible d’allouer un vecteur de taille

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.