大家,早安,
我有四个“字符”类列表:
list1 <- c("hola1", "hola2", "hola3")
list2 <- c("hola1", "hola2", "hola4")
list3 <- c("hola2", "hola7", "hola8")
list4 <- c("hola1", "hola7", "hola8")
我想获取这些列表之间有多少个共同点,例如维恩图,因此输出:
换句话说,就是这样:
这样的事情。您知道任何软件包或获取此软件包的方法吗?
提前致谢。
最佳答案
您可以将intersect
与combn
结合使用。 intersect
查找公共(public)元素,并且combn
将其应用于列表的所有1vs1组合:
l <- list(c("hola1", "hola2", "hola3"),
c("hola1", "hola2", "hola4"),
c("hola2", "hola7", "hola8"),
c("hola1", "hola7", "hola8"))
combn(length(l), 2, FUN=function(i)intersect(l[[i[1]]], l[[i[2]]]),
simplify=FALSE)
# [[1]]
# [1] "hola1" "hola2"
#[[2]]
#[1] "hola2"
#[[3]]
#[1] "hola1"
#[[4]]
#[1] "hola2"
#[[5]]
#[1] "hola1"
#[[6]]
#[1] "hola7" "hola8"
关于r - 提取多个列表中的常用名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22807575/