我得到了一个名为list_of_sentences的单词向量列表。
s1=sample(letters,size = 5,replace = FALSE)
s2=sample(letters,size = 7,replace = FALSE)
s3=sample(letters,size = 3,replace = FALSE)
list_of_sentences=list(s1,s2,s3)假设,我想知道有多少句子包含了"a“这个词。你怎么做到的,我知道我有一张由6000字组成的5万句句子的清单。基本上,我正在寻找% in函数中%的“向量化”版本,以便运行以下内容:
vectorized_match_fun("a",list_of_sentences)
TRUE FALSE TRUE FALSE FALSE FALSE FALSE ...发布于 2016-10-13 14:14:02
可以在应用函数中运行%in%。
set.seed(13)
s1=sample(letters,size = 5,replace = FALSE)
s2=sample(letters,size = 7,replace = FALSE)
s3=sample(letters,size = 3,replace = FALSE)
list_of_sentences=list(s1,s2,s3)
vapply(list_of_sentences,
function(x, find) any(find %in% x),
"a",
FUN.VALUE = logical(1))基于您对另一个答案的评论,我将指出%in%在双方都接受向量。我提供的答案允许您利用这一点,但仍然只返回一个逻辑,指示是否找到匹配项。但是,我不能100%确定这是您想要的,因为您还没有提供如何处理多个单词搜索的示例输出。
但考虑一下
vapply(list_of_sentences,
function(x, find) any(find %in% x),
find = c("a", "x"),
FUN.VALUE = logical(1))发布于 2016-10-13 14:11:15
您可以使用:
vectorized_match_fun <- function(list_input, matched_word){
unlist(lapply(list_input,function(x){
matched_word %in% x
}))
}
vectorized_match_fun(list_of_sentences,"a")
[1] FALSE TRUE FALSE
vectorized_match_fun(list_of_sentences,"x")
[1] FALSE FALSE TRUEhttps://stackoverflow.com/questions/40023303
复制相似问题