R 测试列表是否包含字符串

标签 r list

我有一串数字和一个列表:

 a <- c(1,2,3)
 b <- list( x<-c(1:5),y<-c(1:10),z<-c(10:20))

我想要做的是测试每个数字是否在列表的每个元素中——1 是否在 x 中,2 是否在 y 中,3 是否在 z 中。然后给一个新变量 1/0。

我的代码:
d <- ifelse(a %in% sapply(b,function(x) unlist(x)),1,0)

然而结果:
> d
[1] 0 0 0

理想的结果应该是:
[1] 1 1 0

我怎样才能做到这一点?谢谢

最佳答案

您正在遍历两组匹配的数据,这表明 Map/mapply :

mapply(`%in%`, a, b)
#[1]  TRUE  TRUE FALSE

as.integer(mapply(`%in%`, a, b))
#[1] 1 1 0

关于R 测试列表是否包含字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38908468/

相关文章:

python - 使用 exec 进行变量赋值是Pythonic吗?

r - 观察事件以隐藏 Shiny 的操作按钮

r - 以累积方式在数据帧列表中建立一个值

r - RSelenium Docker 125状态

r - ggplot2:适合 geom_smooth() 像分类变量是连续的

python - 我需要 python 中 list_of_dicts_of_lists 的按列中位数

list - Scala:从第一个非零元素切分列表

r - ggvis 基于多列中的值进行过滤

css - 水平菜单/列表对齐问题

python - Python 中的列表理解以计算列表的最小值和最大值