如果我执行以下操作:
x <- c(TRUE, TRUE, FALSE)
if(x) {
print("hey there")
}
x
被评估为TRUE
,因为第一个元素是TRUE
。我希望仅当TRUE
的每个元素都为TRUE时,才会将条件计算为x
。我认为必须有一种我想念的简单方法(我已经搜索过了)。我认为all.equal
将是我想要的(所以我可以检查“x
的所有元素都等于TRUE
”),但它有不同的用途。
我知道它不理想(它甚至不检查x
是否合乎逻辑),但到目前为止我提出的最好的方法是做这样的事情:
xu_if <- function(x) {
sum(x) == length(x)
}
if(xu_if(x)) {
print("hey there")
}
这样做的最佳方式是什么?
答案 0 :(得分:6)
all()
是您正在寻找的功能
x <- c(TRUE, TRUE, FALSE)
if(all(x)) {
print("hey there")
}
# >
x <- c(TRUE, TRUE, TRUE)
if(all(x)) {
print("hey there")
}
# [1] "hey there"
答案 1 :(得分:3)
一行来做技巧
print(!any(!x))