r - 查找两个列表中的常见单词

标签 r list text-mining intersect

x1 <- c("I like apple", "she enjoys reading")
x2 <- c("he likes apple", "Mike wants to read this book")  
w1 <- strsplit(x1, " ")
w2 <- strsplit(x2, " ")  

我得到两个列表:

w1  
[[1]]  
[1] "I"      "like"   "apple"  

[[2]]  
[1] "she"      "enjoys" "reading"

w2  
[[1]]  
[1] "he"    "likes"  "apple"

[[2]]  
[1] "Mike"  "wants" "to"    "read"  "this"  "book"  

我想要得到

intersect(w1[[1]], w2[[1]])
intersect(w1[[2]], w2[[2]])

假设w1w2的长度非常大,因此使用for循环并不是一种有效的方法。有没有更方便的方法来获取相应的交集?

最佳答案

我们可以使用Map在相应的元素上应用函数

Map(intersect, w1, w2)
#[[1]]
#[1] "apple"

#[[2]]
# character(0)

或者使用purrr中的pmap/map2

library(purrr)
pmap(list(w1, w2), intersect)

关于r - 查找两个列表中的常见单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49020454/

相关文章:

r - Shiny 的条件信息框输出

删除数据框中单元格中包含多个字符串的行

Python 一行获取枚举类列表的所有值的组合列表

facebook - Facebook 公共(public)页面上的文本挖掘

regex - R tm 在语料库中使用 gsub 替换单词

java - OpenNLP find() 方法

r - R中的Forestplot。如何添加箭头、x轴中断和延伸x轴?

python - 如何创建时间重叠的邻接矩阵?

java - 将分隔文件转换为树

java - 返回空列表的最佳 Java 列表实现?