web-dev-qa-db-fra.com

Que signifie "Erreur: objet '<ma variable>" non trouvé?

J'ai eu le message d'erreur:

Erreur: objet 'x' non trouvé

Ou une version plus complexe comme 

Erreur dans la moyenne (x): erreur lors de l'évaluation de l'argument 'x' lors de la sélection d'une méthode pour la fonction 'mean': erreur: objet 'x' introuvable

Qu'est-ce que ça veut dire?

28
Richie Cotton

L'erreur signifie que R n'a pas pu trouver la variable mentionnée dans le message d'erreur.

Le moyen le plus simple de reproduire l'erreur consiste à saisir le nom d'une variable qui n'existe pas. (Si vous avez déjà défini x, utilisez un nom de variable différent.)

x
## Error: object 'x' not found

La version plus complexe de l'erreur a la même cause: appeler une fonction lorsque x n'existe pas.

mean(x)
## Error in mean(x) : 
##   error in evaluating the argument 'x' in selecting a method for function 'mean': Error: object 'x' not found

Une fois que la variable a été définie, l'erreur ne se produira pas.

x <- 1:5
x
## [1] 1 2 3 4 5     
mean(x)
## [1] 3

Vous pouvez vérifier si une variable existe en utilisant ls ou exists .

ls()        # lists all the variables that have been defined
exists("x") # returns TRUE or FALSE, depending upon whether x has been defined.

De telles erreurs peuvent survenir lorsque vous utilisez une évaluation non standard. Par exemple, lorsque vous utilisez subset , l'erreur se produira si un nom de colonne n'est pas présent dans le bloc de données à sous-définir.

d <- data.frame(a = rnorm(5))
subset(d, b > 0)
## Error in eval(expr, envir, enclos) : object 'b' not found

L'erreur peut également se produire si vous utilisez une évaluation personnalisée.

get("var", "package:stats") #returns the var function
get("var", "package:utils")
## Error in get("var", "package:utils") : object 'var' not found

Dans le second cas, la fonction var est introuvable lorsque R regarde dans l'environnement du package utils car utils est plus bas dans la liste search que stats


Dans les cas d'utilisation plus avancés, vous pouvez lire:

24
Richie Cotton

Lors de l'exécution de plusieurs lignes de code dans R, vous devez d'abord sélectionner toutes les lignes de code, puis cliquer sur "Exécuter" . Cette erreur survient généralement lorsque nous ne sélectionnons pas nos instructions et ne cliquons sur "Exécuter". 

3
Shalini

Discutons pourquoi une erreur "objet non trouvé" peut être générée dans R en plus d'expliquer ce que cela signifie. Ce que cela signifie (pour beaucoup) est évident: la variable en question, du moins selon l'interpréteur R, n'a pas encore été définie, mais si vous voyez votre objet dans votre code, il peut y avoir plusieurs raisons à cela:

  1. vérifiez la syntaxe de vos déclarations. Si vous avez mal saisi une seule lettre ou utilisé des majuscules au lieu de minuscules dans une instruction ultérieure, cela ne correspondra pas à votre déclaration d'origine et cette erreur se produira.

  2. Recevez-vous cette erreur dans un cahier ou un document démarqué? Vous devrez peut-être simplement réexécuter une cellule antérieure contenant vos déclarations avant d'exécuter la cellule actuelle dans laquelle vous appelez la variable.

  3. Essayez-vous de tricoter votre document R et la variable fonctionne lorsque vous exécutez les cellules, mais pas lorsque vous les tricotez? Si tel est le cas, vous souhaitez examiner l'extrait de code que je fournis ci-dessous à la recherche d'un éventuel effet secondaire susceptible de déclencher cette erreur:

    {r sourceDataProb1, echo=F, eval=F} # some code here

L'extrait ci-dessus est à partir du début d'une cellule R markdown. Si eval et echo sont tous deux définis sur False, une erreur peut survenir lorsque vous essayez de tricoter le document. Clarifier. J'avais un cas d'utilisation où j'avais laissé ces drapeaux comme Faux parce que je pensais que je ne voulais pas que mon code soit répercuté ou que ses résultats s'affichent dans le code HTML de démarquage que je générais. Mais comme la variable a ensuite été utilisée dans des cellules ultérieures, cela a entraîné une erreur lors du tricotage. De simples essais et erreurs avec les indicateurs T/F TRUE/FALSE permettent de déterminer s’il s’agit de la source de votre erreur lorsqu’elle survient lors du tricotage d’un document à démarquer R à partir de RStudio.

Enfin: avez-vous supprimé la variable ou effacé-la de la mémoire après l'avoir déclarée?

  • rm () supprime la variable
  • frapper l'icône de balai dans la fenêtre evironment de RStudio efface tout dans l'environnement de travail actuel
  • ls () peut vous aider à voir ce qui est actif en ce moment pour rechercher une déclaration manquante.
  • existe ("x") - comme mentionné par une autre affiche, peut vous aider à tester une valeur spécifique dans un environnement avec une très longue liste de variables actives
3
TMWP

J'ai eu un problème similaire avec R-studio. Quand j'ai essayé de faire mes parcelles, ce message a été affiché. 

Finalement, j'ai réalisé que la raison derrière cela était que ma "fenêtre" pour les parcelles était trop petite et que je devais la agrandir pour "ajuster" toutes les parcelles à l'intérieur! 

J'espère aider

1
user10855172