Błąd oznacza, że R nie może znaleźć zmiennej wymienionej w komunikacie o błędzie.
Najprostszym sposobem na odtworzenie błędu jest wpisanie nazwy zmiennej, która nie istnieje. (Jeśli zdefiniowano x
już używać innej nazwy zmiennej.)
x
## Error: object 'x' not found
Im bardziej skomplikowana wersja tego błędu ma tę samą przyczynę: Wywołanie funkcji kiedy x
nie istnieje.
mean(x)
## Error in mean(x) :
## error in evaluating the argument 'x' in selecting a method for function 'mean': Error: object 'x' not found
Po zdefiniowaniu zmiennej błąd nie wystąpi.
x <- 1:5
x
## [1] 1 2 3 4 5
mean(x)
## [1] 3
Można sprawdzić, czy zmienna istnieje używając ls
lub exists
.
ls() # lists all the variables that have been defined
exists("x") # returns TRUE or FALSE, depending upon whether x has been defined.
Błędy takie jak ten może wystąpić, gdy używasz niestandardowego ocenę. Na przykład przy korzystaniu z subset
błąd wystąpi, jeśli nazwa kolumny nie występuje w ramce danych do podzbioru.
d <- data.frame(a = rnorm(5))
subset(d, b > 0)
## Error in eval(expr, envir, enclos) : object 'b' not found
Błąd może również wystąpić w przypadku korzystania ocenę niestandardową.
get("var", "package:stats") #returns the var function
get("var", "package:utils")
## Error in get("var", "package:utils") : object 'var' not found
W drugim przypadku, funkcja var
nie można znaleźć, gdy R wygląda w otoczeniu danego pakietu utils
ponieważ utils
jest dalej w dół listy search
niż stats
.
W bardziej zaawansowanych przypadkach, może chcesz przeczytać:
Próbuję użyć istnieje („X”), ale to powoduje błąd, jeśli x ma wartość NULL: 'Błąd w istnieniu (x): niepoprawny pierwszy argument'. is.null (x) może to sprawdzić, ale test ten zgłasza błąd, jeśli x nie zostanie odnalezione: 'Błąd: obiekt 'x' nie znaleziony'. Złap 22? –
@ R.Schreurs 'x <- NULL; istnieje ("x") 'zwraca' TRUE'. Myślę, że masz inny problem. –
Masz rację. Teraz zakładam, że nie cytowałem "x" w moim wywołaniu: 'exists (x)' powinno być 'exists (" x ")'. –