Which与逻辑向量返回整数(0)

  • 本文关键字:整数 返回 向量 Which r
  • 更新时间 :
  • 英文 :


对此有点困惑。我有一个这样的逻辑向量:

logical_vec <- c(TRUE, FALSE)

我感兴趣的是捕获这个逻辑向量的索引,以便我可以子集另一个R对象。例如,如果我对TRUE元素的位置感兴趣,我想我会使用这个:

which(TRUE, logical_vec) 
[1] 1

但是当试图找到哪个索引是FALSE时,我得到一个integer(0)错误。

which(FALSE, logical_vec)
integer(0)

是否只返回满足TRUE的条件,或者我在这里做了一些不正确的事情?

也许这就是你想要的?注意,您提供了第二个参数arr.ind,这不是您想要的。

logical_vec <- c(TRUE, FALSE)
which(logical_vec == TRUE)
#> [1] 1
which(logical_vec == FALSE)
#> [1] 2

由reprex包(v2.0.1)创建于2021-09-06

which接受'x'的单个参数,通过传递两个参数,它接受第一个参数为'x',默认情况下第二个参数为arr.ind = FALSE。根据?which

(x,加勒比海盗。ind = FALSE, usnames = TRUE)

,

x—逻辑向量或数组。NAs是允许的,也可以省略(当作FALSE处理)。

which(FALSE)
integer(0)

可能需要连接(c)来创建单个向量,而不是两个实参

which(c(FALSE, logical_vec))
[1] 2

同样,不需要在逻辑向量上执行==——默认情况下,which获取逻辑向量的位置索引,如果我们需要取反,使用!

which(logical_vec)
[1] 1
which(!logical_vec)
[1] 2

相关内容

  • 没有找到相关文章

最新更新