这个问题在这里已有答案:
&&布尔运算符似乎与字符向量的工作方式不同,我想知道是否有人知道原因。
例如:
streetA <- c("green", "green", "red")
streetB <- c("green", "green", "green")
streetA == "green" && streetB == "green"
返回TRUE,但语句应该返回FALSE,因为streetA中有一个“红色”。
&语句按预期工作:
streetA == "green" & streetB == "green"
返回:TRUE TRUE FALSE
有人知道为什么吗?
来自&&
文档:
&和&&表示逻辑AND和|和||表示逻辑OR。较短的形式以与算术运算符大致相同的方式执行元素比较。较长的形式从左到右评估仅检查每个向量的第一个元素。评估仅在确定结果之前进行。较长的形式适用于编程控制流程,通常在if子句中是优选的。