TRUE/FALSE 单个结果的布尔向量比较

Boolean vector comparison for TRUE/FALSE single results

提问人:Gero 提问时间:4/24/2021 更新时间:4/24/2021 访问量:846

问:

想象一下,我有一个逻辑向量,其下一个结构如下:

logical.vector = c(TRUE, TRUE, FALSE, FALSE)

我想检查它是否拥有特定的赞助人,就像我想的那样:

logical.vector == c(TRUE, FALSE, TRUE, FALSE) 
-------------------------------------------------
[1] TRUE FALSE FALSE TRUE

练习测试以获得单个 FALSE 输出的正确代码是什么

r 布尔逻辑

评论

2赞 akrun 4/24/2021
你可以用 i.e. 或使用 或allall(logical.vector == c(TRUE, FALSE))identicalall.equal

答:

1赞 Speleo4Life 4/24/2021 #1

与 @akrun 的评论中建议的类似,可以采用稍微“向后”的方法,即使用 ,该方法计算向量中是否至少有一个元素为真——在您的示例中,一个元素在其索引和值方面与标准相同。通过用 !input,意思是 NOT input,你可以得到你所追求的结果。allanytrue

# Standard
logical.vector = c(TRUE, TRUE, FALSE, TRUE)

# Test Patterns

# Case 1 (non-match): should be FALSE
!any(logical.vector != c(TRUE, FALSE, TRUE, TRUE))
 
# Case 2 (non-match): should be FALSE
!any(logical.vector != c(FALSE, TRUE, FALSE, TRUE)) 

# Case 3 (non-match): should be FALSE
!any(logical.vector != c(TRUE, TRUE, TRUE, TRUE)) 

# Case 4 (non-match): should be FALSE
!any(logical.vector != c(FALSE, FALSE, FALSE, FALSE)) 

# Case 5 (match): should be TRUE
!any(logical.vector != c(TRUE, TRUE, FALSE, TRUE))