【问题标题】:Using && for character vectors in r [duplicate]在 r [重复] 中对字符向量使用 &&
【发布时间】:2019-07-20 16:08:03
【问题描述】:

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

例如:

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

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

streetA == "green" &amp;&amp; streetB == "green"

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

& 语句按预期工作:

streetA == "green" &amp; streetB == "green"

返回:真真假

有人知道这是为什么吗?

【问题讨论】:

  • “&& 布尔运算符似乎与字符向量的工作方式不同”:与什么不同?这是预期的行为。
  • Logical AND "从左到右只检查每个向量的第一个元素"。尝试将其中一个向量中的第一个“绿色”更改为“蓝色”;你会得到 FALSE。
  • 与整数值相比不同。它是一个 and 运算符,所以如果一切都为真,它应该返回 TRUE。或 ||如果一侧为 TRUE,则返回 TRUE
  • 不。整数向量与这些运算符的工作方式相同。
  • 是的,你是对的。出于某种原因,我认为运算符进行了成对比较,并在它得到第一个 FALSE 时中断。

标签: r boolean


【解决方案1】:

来自&amp;&amp; 文档:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多