【问题标题】:How to compare boolean vectors in R如何比较 R 中的布尔向量
【发布时间】:2012-11-09 09:55:49
【问题描述】:

我有一个向量 v,我想找到所有值在 4 到 7 之间的元素。 v = c(1:9)

# indices of elements with values larger than 4
which(v > 4)
# indices of elements with values smaller than 7
which(v < 7)

v&gt;4v&lt;7 给出布尔向量,我想将它们组合起来。我尝试了以下方法,但对我不起作用,...

# combination?
matching = which(v>4 && v<7)  # does not work

如何对两个布尔向量进行布尔运算,得到一个结果向量?

【问题讨论】:

    标签: r vector comparison boolean boolean-operations


    【解决方案1】:

    使用&amp; 而不是&amp;&amp;。 R 与其他语言的不同之处在于&amp; 不是按位的and,而是一个逻辑运算符。

    &amp;&amp; 只计算每个向量的第一个元素:

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

    详情请见?"&amp;&amp;"

    【讨论】:

    • 不错的答案,+1。您可能需要指出引用文本的来源:来自&amp; 的帮助页面,可以使用?"&amp;" 访问该页面。我每周至少看一次,因为我永远无法弄清楚它们......
    猜你喜欢
    • 1970-01-01
    • 2015-08-28
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    相关资源
    最近更新 更多