是否有一个 R 函数可以测试多个指定对象的存在?
Is there a R function that tests for existence of more than one specified objects?
所以我知道在 R 中,有 exists()
可以判断一个对象是否存在于环境中。
虽然我想测试的是多个对象的存在,比如 a, b, c
在 R 中。
是否有一个函数可以在 R 中执行类似 exists(c('a','b','c'))
和 return FALSE 的功能(如果任何一个对象不存在)?
谢谢!
您可以使用ls()
来检查对象是否存在于环境中。
a <- 1
b <- 2
all(c('a', 'b', 'c') %in% ls())
#[1] FALSE
all(c('a', 'b') %in% ls())
#[1] TRUE
你可以这样写你自己的函数:
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
所以我知道在 R 中,有 exists()
可以判断一个对象是否存在于环境中。
虽然我想测试的是多个对象的存在,比如 a, b, c
在 R 中。
是否有一个函数可以在 R 中执行类似 exists(c('a','b','c'))
和 return FALSE 的功能(如果任何一个对象不存在)?
谢谢!
您可以使用ls()
来检查对象是否存在于环境中。
a <- 1
b <- 2
all(c('a', 'b', 'c') %in% ls())
#[1] FALSE
all(c('a', 'b') %in% ls())
#[1] TRUE
你可以这样写你自己的函数:
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