L'errore indica che R non ha trovato la variabile menzionata nel messaggio di errore.
Il modo più semplice per riprodurre l'errore è digitare il nome di una variabile che non esiste. (Se avete definito x
già, utilizzare un nome di variabile diverso.)
x
## Error: object 'x' not found
La versione più complessa dell'errore ha la stessa causa: chiamare una funzione quando x
non esiste.
mean(x)
## Error in mean(x) :
## error in evaluating the argument 'x' in selecting a method for function 'mean': Error: object 'x' not found
Una volta definita la variabile, l'errore non si verificherà.
x <- 1:5
x
## [1] 1 2 3 4 5
mean(x)
## [1] 3
È possibile controllare per vedere se un variabile esiste utilizzando ls
o exists
.
ls() # lists all the variables that have been defined
exists("x") # returns TRUE or FALSE, depending upon whether x has been defined.
errori come questo può verificarsi quando si utilizza la valutazione non standard. Ad esempio, quando si utilizza subset
, l'errore si verifica se il nome di una colonna non è presente nel frame di dati come sottoinsieme.
d <- data.frame(a = rnorm(5))
subset(d, b > 0)
## Error in eval(expr, envir, enclos) : object 'b' not found
L'errore può verificarsi anche se si utilizza la valutazione personalizzata.
get("var", "package:stats") #returns the var function
get("var", "package:utils")
## Error in get("var", "package:utils") : object 'var' not found
Nel secondo caso, la funzione var
non può essere trovato quando R guarda nell'ambiente pacchetto di utils
perché utils
è più in basso nella lista search
di stats
.
In altri casi d'uso avanzate, si potrebbe desiderare di leggere:
ho cercato di usare esiste ("x"), ma questo genera un errore se x è NULL: 'Errore in esiste (x): primo argomento non valido'. is.null (x) può testarlo, ma quel test genera un errore se x non viene trovato: 'Errore: oggetto 'x' non trovato '. Prendi il 22? –
@ R.Schreurs 'x <- NULL; exists ("x") 'restituisce' TRUE'. Penso che tu abbia un problema diverso. –
Hai ragione. Suppongo ora di non aver citato 'x' nella mia chiamata:' exists (x) 'avrebbe dovuto essere' exists ("x") '. –