如何比较R中的布尔向量

R_U*_*ser 4 comparison boolean r vector boolean-operations

我有一个向量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)
Run Code Online (Sandbox Code Playgroud)

v>4v<7给出布尔向量,我想结合起来.我试过以下,这对我不起作用,......

# combination?
matching = which(v>4 && v<7)  # does not work
Run Code Online (Sandbox Code Playgroud)

如何在两个布尔向量上应用布尔运算,这给了我一个结果向量?

Jan*_*ary 21

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

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

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

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