【发布时间】:2019-07-20 16:08:03
【问题描述】:
&& 布尔运算符似乎与字符向量的工作方式不同,我想知道是否有人知道原因。
例如:
streetA <- c("green", "green", "red")
streetB <- c("green", "green", "green")
streetA == "green" && streetB == "green"
返回 TRUE,但该语句应返回 FALSE,因为 streetA 中有一个“红色”。
& 语句按预期工作:
streetA == "green" & streetB == "green"
返回:真真假
有人知道这是为什么吗?
【问题讨论】:
-
“&& 布尔运算符似乎与字符向量的工作方式不同”:与什么不同?这是预期的行为。
-
Logical AND "从左到右只检查每个向量的第一个元素"。尝试将其中一个向量中的第一个“绿色”更改为“蓝色”;你会得到 FALSE。
-
与整数值相比不同。它是一个 and 运算符,所以如果一切都为真,它应该返回 TRUE。或 ||如果一侧为 TRUE,则返回 TRUE
-
不。整数向量与这些运算符的工作方式相同。
-
是的,你是对的。出于某种原因,我认为运算符进行了成对比较,并在它得到第一个 FALSE 时中断。