Итак, я знаю, что в R есть exists(), который может сказать, существует ли объект в окружающей среде.

Однако я хочу проверить наличие нескольких объектов, скажем, a, b, c в R.

Есть ли функция, которая может сделать что-то вроде exists(c('a','b','c')) в R и вернуть FALSE, если какой-либо из объектов не существует?

Спасибо!

1
DH. H 1 Мар 2020 в 09:31

2 ответа

Лучший ответ

Вы можете написать свою собственную функцию следующим образом:

exists.m <- function(x) {
  all(sapply(x, exists))
}


exists.m(c("mean", "sd"))
[1] TRUE

В противном случае более удобный подход - использовать ... в качестве аргумента в функции.

exists.m <- function(...) {
  ls <- list(...)
  all(sapply(ls, exists))
}

exists.m("mean", "sd")
[1] TRUE
2
Neeraj 1 Мар 2020 в 07:51

Вы можете использовать ls(), чтобы проверить, существует ли объект в среде.

a <- 1
b <- 2

all(c('a', 'b', 'c') %in% ls())
#[1] FALSE

all(c('a', 'b') %in% ls())
#[1] TRUE
1
Ronak Shah 1 Мар 2020 в 07:04