我有一个向量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>4
和v<7
给出了布尔向量,我想将它们结合起来。我尝试了以下,这对我不起作用,......
# combination?
matching = which(v>4 && v<7) # does not work
如何在两个布尔向量上应用布尔运算,这样可以得到一个结果向量?
答案 0 :(得分:20)
使用&
而非&&
。 R与其他语言的不同之处在于&
不是按位and
,而是逻辑运算符。
&&
仅评估每个向量的第一个元素:
'&amp;'和'&amp;&amp;'表示逻辑AND,'|'和'||'表示 逻辑或。较短的形式执行元素比较 与算术运算符的方式大致相同。更长的形式 从左到右评估只检查每个元素的第一个元素 向量。评估仅在确定结果之前进行。 较长的形式适用于编程控制流程和 通常在'if'子句中首选。
有关详细信息,请参阅?"&&"
。