R中%函数的递归%?

psy*_*iko 7 recursion r pattern-matching

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

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

> sets
$S1
[1] NA

$S2
[1] 1

$S3
[1] 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

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

[1] FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

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

flo*_*del 9

像这样:

sapply(sets, `%in%`, x = val)
#    S1    S2    S3 
# FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

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