2016-05-26 9 views
4

Я хочу, чтобы определить, существует ли объект внутри функции в R:Проверка существования объекта внутри функции в R

foo <- function() { 
y <- "hello" 
if (exists(y, envir = sys.frame())) print(y) 
} 
foo() 

Ошибка существует (у, Envir = sys.frame()): недействительным первый аргумент

Я думал, что добавление envir = sys.frame() сделало бы трюк. Также попробовал envir = environment()

Ожидаемое

foo() 
"hello" 
+2

Try 'существует ('у') ' –

+0

Тот же вопрос обсуждается здесь: http://stackoverflow.com/questions/9368900/check-if-object-variable-is-defined – 989

ответ

4

Вы должны быть проверены ?exists:

Usage: 

    exists(x, where = -1, envir = , frame, mode = "any", 
      inherits = TRUE) 

Arguments: 

     x: a variable name (given as a character string). 

ли exists("y")

+0

rookie ошибка, спасибо. –