在R中使用&&作为字符向量

时间:2019-02-27 02:06:47

标签: r boolean

&&布尔运算符在字符向量上的工作方式似乎有所不同,我想知道是否有人知道原因。

例如:

streetA <- c("green", "green", "red")

streetB <- c("green", "green", "green")

streetA == "green" && streetB == "green"

返回TRUE,但是该语句应返回FALSE,因为streetA中有一个“红色”。

&语句按预期工作:

streetA == "green" & streetB == "green"

返回:TRUE TRUE FALSE

有人知道这是为什么吗?

1 个答案:

答案 0 :(得分:4)

摘自&&文档:

  

&和&&表示逻辑AND和|和||表示逻辑或。较短的形式以与算术运算符几乎相同的方式执行元素比较。较长的形式从左到右求值,仅检查每个向量的第一个元素。评估仅进行到确定结果为止。较长的形式适用于编程控制流,通常在if子句中首选。