空索引向量的补又是空的索引向量(Complement of empty index vector i

2019-08-21 04:59发布

我知道这个问题已经发布,但得到的答复是一招解决给定的问题一些其他的方式,但核心问题仍然没有答案。

问题是这样的。

somevector <- 1:5
emptyindeces <- vector()
somevector[-emptyindeces] #returns empty vector

为什么它不是原来的载体?

是否有一个原因还是我的理解是错误的。 如果是的话请告诉我正确的方式来获得索引向量的补充。

Answer 1:

emptyindiceslogical(0)长度= 0的逻辑载体)和-emptyindices变为integer(0) 所以,你要查询的矢量,长度= 0的指数你得到一个长度为0的整数向量。

也许你正在寻找的,例如, setdiff

v <- 6:10
idx1 <- c(1,3)
idx2 <- vector()
idx3 <- 1:5

v[setdiff(seq_along(v), idx1)]
# [1] 7 9 10

v[setdiff(seq_along(v), idx2)]
# [1] 6 7 8 9 10

v[setdiff(seq_along(v), idx3)]
# integer(0)


Answer 2:

那是因为-0 = 0 ? 但我可以看到一个算法可以碰到问题,如果这方面的过度期待。 因此,我建议使用setdiff而不是负指数。



Answer 3:

somevector < - C(1:5,NA,8)
sumvec <-subset(somevector,!is.na(somevector))

也不太清楚,如果这是你想要的,但让我知道,如果你想要一些不同的东西,所以我可以纠正我的答案。 答案hashtagged是另一种答案,如果这就是你要找的人。



文章来源: Complement of empty index vector is empty index vector again