确定字符向量中与匹配向量[R]中的最大匹配数相匹配的位置
如何测试一个字符向量(testvec)的哪个元素具有来自另一个字符向量(matchvec)的最多单词确定字符向量中与匹配向量[R]中的最大匹配数相匹配的位置,r,string,match,R,String,Match,如何测试一个字符向量(testvec)的哪个元素具有来自另一个字符向量(matchvec)的最多单词 testvec使用stringr的一种可能性是: count <- str_count(testvec, paste(matchvec, collapse = "|")) which(count == max(count)) [1] 2 或者如果有重复的词语(如@Henrik所建议): count这也应该有效: testvec一种可能性: res<-lapply(testvec
testvec使用stringr
的一种可能性是:
count <- str_count(testvec, paste(matchvec, collapse = "|"))
which(count == max(count))
[1] 2
或者如果有重复的词语(如@Henrik所建议):
count这也应该有效:
testvec一种可能性:
res<-lapply(testvec, function(x) stringr::str_count(matchvec))
which.max(Map(sum,res))
[1] 2
另一个base
可能性:len注意,如果单词重复,base R方法不起作用,例如“重要”
@Henrik非常好的可能性。把它添加到我的帖子里。如果你想自己发布,我可以删除它:)@tmfmnk我无意发布自己的答案,所以你的编辑对我来说非常合适。
count <- str_count(testvec, paste(matchvec, collapse = "|"))
which(count == max(count))
[1] 2
count <- rowSums(sapply(matchvec, function(x) grepl(x, testvec)))
which(count == max(count))
count <- lengths(gregexpr(paste(matchvec, collapse = "|"), testvec))
which(count == max(count))
which(matches == max(matches)])
res<-lapply(testvec, function(x) stringr::str_count(matchvec))
which.max(Map(sum,res))
[1] 2
plyr::ldply(testvec,
function(x)
all(stringr::str_count(x,matchvec)>0))
which(res==TRUE)
[1] 2