在 r 中使用 && 表示字符向量

Bob*_*b M 1 boolean r

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

例如:

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

streetB <- c("green", "green", "green")
Run Code Online (Sandbox Code Playgroud)

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

返回 TRUE,但该语句应返回 FALSE,因为 streetA 中包含“红色”。

& 语句按预期工作:

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

返回: TRUE TRUE FALSE

有人知道为什么吗?

dyl*_*njm 5

&&文档中:

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