字符串匹配记录以计算数据框中的所有实例

String matching records to count all instances in a dataframe

我正在尝试从数据框中的行中提取所有符合特定条件的字符串,例如每行中匹配 'corn' 的单词数。这是输入。

install.packages('stringr')
library(stringr)
dataset <- c("corn", "cornmeal", "corn on the cob", "meal")
y<- c('corn',"corn","mean","meal")
id<- c(1,2,3,4)
dataset <- data.frame(id,dataset,y)

id         dataset    y
1  1            corn corn
2  2        cornmeal corn
3  3 corn on the cob mean
4  4            meal meal

我正在尝试获得这样的输出

 id         dataset    y    corn  meal 
  1  1            corn corn  2     0 
  2  2        cornmeal corn  1     0
  3  3 corn on the cob mean  0     0
  4  4            meal meal  0     2

使用 rowSums 的选项。我们创建一个名称向量进行比较,然后根据该名称创建列。

v1 <- c('corn', 'meal')     
dataset[v1] <- sapply(v1, function(x)  rowSums(dataset[-1]==x))