计算向量在另一个向量中的出现次数

Count occurence of vector in another vector

tweet<- c("boy","girl","boy","x")
unique_words<- c("asdfdd","boy","girl","ahmed","asdf","asfeertrt")
word_count<-table(tweet[tweet %in%unique_words])
word_occurence<- as.integer(unique_words%in% tweet)

我得到了这些输出: word_count::

          boy girl 
           2    1

word_occurence::

           0 1 1 0 0 0

但我希望输出如下所示: 0 2 1 0 0 0

您可以执行以下操作:

library(stringr)
rowSums(sapply(tweet, function(x, y) str_count(x, y), unique_words))
[1] 0 2 1 0 0 0

该命令循环遍历 tweet 向量,计算每次出现的次数(str_count()stringr 包),然后使用 rowSums 对数据求和。

我们可以使用ifelse

ifelse(unique_words%in% tweet, word_count, 0)
#[1] 0 1 2 0 0 0