gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:57:55 24 4
gpt4 key购买 nike

我知道有一些方法可以使用 all.equal 检查多个变量是否彼此相等,但这不是我在这里要问的。假设我有一个函数 f(v, w = NULL, x = NULL, y = NULL, z = NULL) 我想知道 w, xyz 都是 NULL。我知道的唯一方法是使用 all(is.null(w), is.null(x), is.null(y), is.null(z))。有更容易的方法吗?我正在设想一种矢量化方法,例如 all(c(w, x, y, z), is.null),但我想到了任何东西。 sapply(c(w, x, y, z), is.null) 只返回一个空列表。

最佳答案

在创建要测试的组时使用 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

关于r - 检查多个变量是否在 R 中都是相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33862695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com