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

时间:2015-06-06 19:08:07

标签: r reshape2 stringr agrep

我正在尝试从符合特定条件的数据框中的行中提取所有字符串,例如每行中有多少单词匹配'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

1 个答案:

答案 0 :(得分:4)

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

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