Que signifie "erreur: objet ""non trouvé"?

j'ai eu le message d'erreur:

Erreur: objet 'x' ne trouve pas

ou une version plus complexe comme

erreur dans la moyenne (x) : erreur dans l'évaluation de l'argument " x "dans la sélection d'une méthode pour la fonction "moyenne": Erreur: l'objet 'x' ne trouve pas

Qu'est-ce que cela signifie?

26
demandé sur BartoszKP 2015-01-11 15:06:45

3 réponses

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

la façon La plus simple de reproduire l'erreur est de taper le nom d'une variable qui n'existe pas. (Si vous avez défini x déjà, utilisez un nom de variable différent.)

x
## Error: object 'x' not found

la version la plus complexe de l'erreur a la même cause: appeler une fonction quand 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 la variable définie, l'erreur ne sera pas produire.

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.

des erreurs de ce genre peuvent se produire lorsque vous utilisez une évaluation non standard. Par exemple, lors de l'utilisation de subset, l'erreur se produira si un nom de colonne n'est pas présent dans la base de données à sous-ensemble.

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 personnalisé d'évaluation.

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, le var la fonction ne peut pas être trouvé lors de la R regarde dans le utils l'environnement du paquet parce que utils est plus bas le search liste stats.


dans les cas d'utilisation plus avancée, vous pouvez lire:

22
répondu Richie Cotton 2017-02-22 21:24:14

nous allons discuter pourquoi une erreur "objet non trouvé" peut être lancée dans R en plus d'expliquer ce qu'elle 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 pour lesquelles cela se produit:

  1. vérifier la syntaxe de vos déclarations. Si vous avez mal tapé, même une seule lettre ou utilisé des majuscules au lieu de minuscules dans un plus tard appeler la déclaration, alors elle ne correspondra pas à votre déclaration originale et cette erreur se produira.

  2. cette erreur apparaît-elle dans un carnet ou dans un document de markdown? Vous pouvez simplement avoir besoin de relancer une cellule antérieure qui a vos déclarations avant d'exécuter la cellule courante où vous appelez la variable.

  3. essayez-vous de tricoter votre document R et les travaux variables trouvent quand vous exécutez les cellules mais pas quand vous tricotez les cellules? Si oui, - puis vous souhaitez examiner l'extrait que je fournis ci-dessous pour un effet secondaire possible qui déclenche cette erreur:

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

l'extrait ci-dessus est du début d'une cellule R markdown. Si eval et echo sont tous deux définis à False, cela peut déclencher une erreur lorsque vous essayez de tricoter le document. Clarifier. J'ai eu 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 repris ou que ses résultats apparaissent dans le HTML markdown que j'étais générer. Mais comme la variable a ensuite été utilisée dans les cellules suivantes, cela a causé une erreur lors du tricotage. Simple essai et erreur avec les drapeaux vrai/faux T / F peut établir si c'est la source de votre erreur quand il se produit dans tricoter un document de markdown R à partir de RStudio.

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

  • rm () supprime la variable
  • frapper l'icône du balai dans la fenêtre d'environnement de RStudio clearls tout dans l'actuel environnement de travail
  • ls () peut vous aider à voir ce qui est actif en ce moment pour chercher une déclaration manquante.
  • existe ("x") - comme mentionné par un autre poster, peut vous aider à tester une valeur spécifique dans un environnement avec une très longue liste de variables actives
3
répondu TMWP 2017-02-23 15:57:07

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

2
répondu Shalini 2018-08-19 15:19:36