R中%函数的递归%?

时间:2013-04-27 01:11:29

标签: r recursion pattern-matching

我确信这是一个已被多次询问过的简单问题,但这是其中一次,当我发现很难知道要搜索哪些术语以便找到解决方案时。我有一个简单的列表列表,例如下面的列表:

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 - 然后,返回对应于set中每个列表的TRUE / FALSE向量的快速方法是什么,其中TRUE表示val在该列表中,FALSE表示它是不?在这种情况下,我想要像

这样的东西
[1] FALSE FALSE  TRUE

我希望有%in%的递归形式,但我没有幸运地寻找它。谢谢!

1 个答案:

答案 0 :(得分:9)

像这样:

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

我必须查看帮助页面?"%in%",以确定%in%的第一个参数名为x。为了您的好奇心(此处不需要),第二个名为table