检查R中的多个变量是否都是相同的值

时间:2015-11-23 02:02:43

标签: r

我知道有多种方法可以使用f(v, w = NULL, x = NULL, y = NULL, z = NULL)检查多个变量是否彼此相等,但这不是我在这里问的问题。我们假设我有一个函数w,我想知道xyzall(is.null(w), is.null(x), is.null(y), is.null(z))是否都为NULL。我知道这样做的唯一方法是使用all(c(w, x, y, z), is.null)。有没有更简单的方法?我设想像sapply(c(w, x, y, z), is.null)这样的矢量化方法,但我想到了什么。 {{1}}只返回一个空列表。

1 个答案:

答案 0 :(得分:6)

在创建要测试的组时使用list而不是c

w <- x <- y <- z <- NULL

sapply(list(w,x,y,z), is.null)
#[1] TRUE TRUE TRUE TRUE

all(sapply(list(w,x,y,z), is.null))
#[1] TRUE

似乎有效。

至于为什么c不起作用,请考虑:

c(NULL,NULL,1,NULL)
#[1] 1
c(NULL,NULL,NULL)
#NULL