我有以下清单
A = list(c(1,2,3,4), c(5,6,7,8), c(4,6,2,3,1), c(6,2,1,7,12, 15, 16, 10))
A
[[1]]
[1] 1 2 3 4
[[2]]
[1] 5 6 7 8
[[3]]
[1] 4 6 2 3 1
[[4]]
[1] 6 2 1 7 12 15 16 10
Run Code Online (Sandbox Code Playgroud)
我想检查该元素2是否存在于每个列表中。如果存在,那么我需要分配1给相应的列表。
先感谢您。
@jasbner 的评论可以进一步细化为
1 * sapply(A, `%in%`, x = 2)
# [1] 1 0 1 1
Run Code Online (Sandbox Code Playgroud)
在这种情况下sapply返回一个逻辑向量,然后乘以 1 强制TRUE为0。另外,由于语法为1,我们可以避免定义匿名函数,而是像上面那样编写。最后,使用而不是返回一个向量而不是一个列表,这似乎就是你所追求的。FALSEx %in% tablefunction(x) 2 %in% xsapplylapply