5

我有一个向量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>4v<7给出我想组合的布尔向量。我尝试了以下方法,但对我不起作用,...

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

如何在两个布尔向量上应用布尔运算,得到一个结果向量?

4

1 回答 1

24

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

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

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

有关?"&&"更多详细信息,请参阅。

于 2012-11-09T09:57:35.810 回答