我想检查向量a
的元素是否在 R 中的向量元素之间b
。我该怎么做?表示介于 2 和 4 之间的 3,如果是则出现在结果中,如果不是则不出现。刚才提到我不想检查向量a的第一个和最后一个元素。结果应该只有 3。
a = c(1, 3, 8, 12)
b = c(0, 2, 4, 6, 8)
我想检查向量a
的元素是否在 R 中的向量元素之间b
。我该怎么做?表示介于 2 和 4 之间的 3,如果是则出现在结果中,如果不是则不出现。刚才提到我不想检查向量a的第一个和最后一个元素。结果应该只有 3。
a = c(1, 3, 8, 12)
b = c(0, 2, 4, 6, 8)
这是我的做法:
> 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 函数中使用而不是使用。FALSE
Vec[is.na(Vec)] <- F
c(b,max(a))
b
你为什么不只使用一个循环?
> 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