7

我确信这是一个被问过很多次的简单问题,但这是我发现很难知道要搜索哪些术语才能找到解决方案的时候。我有一个简单的列表列表,如下所示:

sets <- list(S1=NA, S2=1L, S3=2:5)

> sets
$S1
[1] NA

$S2
[1] 1

$S3
[1] 2 3 4 5

我有一个标量变量val,它可以取任何整数的值sets(但永远不会是NA)。假设val <- 4- 那么,有什么方法可以快速返回对应于每个列表的 TRUE/FALSE 向量,set其中 TRUE 表示val在该列表中,而 FALSE 表示不在?在这种情况下,我想要类似的东西

[1] FALSE FALSE  TRUE

我希望会有一些递归形式,%in%但我没有找到它的运气。谢谢!

4

1 回答 1

9

像这样:

sapply(sets, `%in%`, x = val)
#    S1    S2    S3 
# FALSE FALSE  TRUE

我不得不查看帮助页面?"%in%"以发现第一个参数%in%是命名的x。为了您的好奇心(这里不需要),第二个被命名为table.

于 2013-04-27T01:16:49.603 回答