0

我想检查向量a的元素是否在 R 中的向量元素之间b。我该怎么做?表示介于 2 和 4 之间的 3,如果是则出现在结果中,如果不是则不出现。刚才提到我不想检查向量a的第一个和最后一个元素。结果应该只有 3。

      a = c(1, 3, 8, 12)
      b = c(0, 2, 4, 6, 8)
4

2 回答 2

-1

这是我的做法:

> Interval <- cut(a, b, FALSE)            ## Which 'slot' of b does a fit into?
> Interval
[1]  1  2  4 NA
> Interval == 1:length(a)                 ## Does it fit sequentially?
[1]  TRUE  TRUE FALSE   NA

由于完全a[4]超出b,您可以使用之后(即)替换所有NA值,或者在 cut 函数中使用而不是使用。FALSEVec[is.na(Vec)] <- Fc(b,max(a))b

于 2012-12-06T07:34:48.553 回答
-1

你为什么不只使用一个循环?

> a = c(1, 3, 8, 12)
> b = c(0, 2, 4, 6, 8)
> for (i in 2:(length(a)-1)){ if (b[i] < a[i] && a[i] <b[i+1]) {print (a[i])}}
[1] 3
于 2012-12-06T08:53:49.750 回答