Существует ли функция R, которая проверяет наличие более одного указанного объекта? - PullRequest
1 голос
/ 01 марта 2020

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

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

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 01 марта 2020

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

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
1 голос
/ 01 марта 2020

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

a <- 1
b <- 2

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

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