R:检查列表中是否有特定号码

时间:2013-06-04 00:50:43

标签: r list for-loop

以下是我的情况:

我有一个名为 sc

的列表
> sc
[[1]]
 [1]  1  6 11 16 21 26 31 36 41 46 51 52

[[2]]
 [1]  2  7 12 17 22 27 32 37 42 47 53 54

[[3]]
 [1]  3  8 13 18 23 28 33 38 43 48 55 56

[[4]]
 [1]  4  9 14 19 24 29 34 39 44 49 57 58

[[5]]
 [1]  5 10 15 20 25 30 35 40 45 50 59 60

[[6]]
[1] 61 62 63 64 65 66

然后我想检查8是否在sc[k] (k=1:6)

如何编码呢?我试图使用但不工作。

1 个答案:

答案 0 :(得分:4)

所有这些都应该有效:

sapply(sc, `%in%`, x = 8)
sapply(sc, is.element, el = 8)
mapply(`%in%`, 8, sc)
mapply(is.element, 8, sc)

这些都返回TRUEFALSE的相同向量:每个列表元素是否包含8。如果你想要的是这样的索引(k),其中找到了8,只需用which包裹它,例如:

which(sapply(sc, `%in%`, x = 8))