我有两个字符串:
a <- "Roy lives in Japan and travels to Africa"
b <- "Roy travels Africa with this wife"
我正在寻找这些字符串之间常用单词的计数。
答案应该是3。
作为常用词
这是我尝试过的:
stra <- as.data.frame(t(read.table(textConnection(a), sep = " ")))
strb <- as.data.frame(t(read.table(textConnection(b), sep = " ")))
取唯一以避免重复计数
stra_unique <-as.data.frame(unique(stra$V1))
strb_unique <- as.data.frame(unique(strb$V1))
colnames(stra_unique) <- c("V1")
colnames(strb_unique) <- c("V1")
common_words <-length(merge(stra_unique,strb_unique, by = "V1")$V1)
对于包含 2000 多个和 1200 个字符串的数据集,我需要这样做。
我必须评估字符串的总次数是 2000 X 1200。任何快速方法,不使用循环。
最佳答案
您可以使用 strsplit
和 intersect
来自 base
图书馆:
> a <- "Roy lives in Japan and travels to Africa"
> b <- "Roy travels Africa with this wife"
> a_split <- unlist(strsplit(a, sep=" "))
> b_split <- unlist(strsplit(b, sep=" "))
> length(intersect(a_split, b_split))
[1] 3
关于r - 计算两个字符串中的常见单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25930550/