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