布尔开关:“任意”的行为

时间:2014-01-15 09:58:25

标签: r base any

我有一个应用逻辑测试的数据框:任何列是否为TRUE?

x=data.frame(label=c('a','b','c'),outcome1=c(TRUE,FALSE,FALSE),outcome2=c(FALSE,FALSE,TRUE),outcome3=c(TRUE,FALSE,FALSE))
x=transform(x,result=any(outcome1,outcome2,outcome3))

x
#   label outcome1 outcome2 outcome3 result
# 1     a     TRUE    FALSE     TRUE   TRUE
# 2     b    FALSE    FALSE    FALSE   TRUE
# 3     c    FALSE     TRUE    FALSE   TRUE

我不明白为什么第2行的结果为TRUE,因为并非所有列条款都为真。

any(FALSE,FALSE,FALSE)
FALSE

在这种情况下应用“any”的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您的代码计算

any(c(TRUE,FALSE,FALSE),c(FALSE,FALSE,TRUE),c(TRUE,FALSE,FALSE))

并回收结果以填充该列。