2015-06-06 54 views
3

我想从匹配某些条件的数据框中的行中提取所有字符串,例如每行中匹配“玉米”的字数。这是输入。字符串匹配记录来统计数据帧中的所有实例

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 
+3

它是一个简单的'rowSums'操作。你想为'dataset'或'y'中的每个单词添加一列吗? –

+0

我只想为每个单词列如上所示。但我有一大堆像V1:V100这样的变量,我需要创建像玉米,餐等列 – user3570187

+0

我得到这个错误。错误在rowSums(数据集,na.rm = FALSE,dims = 1):'x'必须是数字 – user3570187

回答

4

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

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