【发布时间】:2020-03-01 06:31:38
【问题描述】:
所以我知道在 R 中,有 exists() 可以判断环境中是否存在对象。
我想测试的是多个对象的存在,比如 R 中的a, b, c。
是否有一个函数可以在 R 中执行类似 exists(c('a','b','c')) 之类的操作并在任何一个对象不存在时返回 FALSE?
谢谢!
【问题讨论】:
所以我知道在 R 中,有 exists() 可以判断环境中是否存在对象。
我想测试的是多个对象的存在,比如 R 中的a, b, c。
是否有一个函数可以在 R 中执行类似 exists(c('a','b','c')) 之类的操作并在任何一个对象不存在时返回 FALSE?
谢谢!
【问题讨论】:
你可以像这样编写自己的函数:
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
【讨论】:
您可以使用ls() 来检查对象是否存在于环境中。
a <- 1
b <- 2
all(c('a', 'b', 'c') %in% ls())
#[1] FALSE
all(c('a', 'b') %in% ls())
#[1] TRUE
【讨论】: