是否有一个 R 函数可以测试多个指定对象的存在?

Posted

技术标签:

【中文标题】是否有一个 R 函数可以测试多个指定对象的存在?【英文标题】:Is there a R function that tests for existence of more than one specified objects? 【发布时间】:2020-03-01 06:31:38 【问题描述】:

所以我知道在 R 中,有 exists() 可以判断环境中是否存在对象。

我想测试的是多个对象的存在,比如 R 中的a, b, c

是否有一个函数可以在 R 中执行类似 exists(c('a','b','c')) 之类的操作并在任何一个对象不存在时返回 FALSE?

谢谢!

【问题讨论】:

【参考方案1】:

你可以像这样编写自己的函数:

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】:

您可以使用ls() 来检查对象是否存在于环境中。

a <- 1
b <- 2

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

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

【讨论】:

以上是关于是否有一个 R 函数可以测试多个指定对象的存在?的主要内容,如果未能解决你的问题,请参考以下文章

面向对象设计与构造第四次课程总结

测试基础

R语言exists函数检查数据对象是否存在实战

如何判断父窗口是不是存在某个函数,例如f1,如果存在如何调用

常用功能-查询功能测试点

代码整洁之道——2函数