在字符向量列表中查找任何交集
Posted
技术标签:
【中文标题】在字符向量列表中查找任何交集【英文标题】:Find any intersection in a list of character vectors 【发布时间】:2021-05-20 00:39:35 【问题描述】:我有一个list
和character
vector
s,其中一些有相交的元素,但整个list
不一定有相交的元素。
例如:
l <- list(c("a"),c("a","b"),c("a","c"),c("d"),c("e"),c("h","i"))
我想找到任何相交的元素。对于此示例,这将是:
a
显然
Reduce(intersect,l)
不适合这样做,因为它会查找与整个 list
相交的元素。
有什么想法吗?
【问题讨论】:
【参考方案1】:对于列表中的每个元素,使用table
找出它的计数,并仅选择出现在多个列表中的那些值。
vals <- unique(unlist(l))
intersect_vals <- names(Filter(function(x) x > 1,
rowSums(sapply(l, function(x) table(factor(x, vals))) > 0)))
intersect_vals
#[1] "a"
【讨论】:
以上是关于在字符向量列表中查找任何交集的主要内容,如果未能解决你的问题,请参考以下文章