我确信这是一个已被多次询问过的简单问题,但这是其中一次,当我发现很难知道要搜索哪些术语以便找到解决方案时。我有一个简单的列表列表,例如下面的列表:
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%
的递归形式,但我没有幸运地寻找它。谢谢!
答案 0 :(得分:9)
像这样:
sapply(sets, `%in%`, x = val)
# S1 S2 S3
# FALSE FALSE TRUE
我必须查看帮助页面?"%in%"
,以确定%in%
的第一个参数名为x
。为了您的好奇心(此处不需要),第二个名为table
。