【发布时间】:2013-11-08 08:08:24
【问题描述】:
我有四个字。它们是 wordA、wordB、wordX 和 wordY。我有一个由 1 列(消息)组成的数据集,消息列的数据类型是因子。我想计算 (wordX 和 wordY) 的出现总数,然后从每行中 (wordA 和 wordB) 的出现中减去它,然后将结果放入该行的新列中。
例如,如果消息列的文本是“wordD wordA wordX wordA wordC wordA wordB wordY”,则该值应等于 wordA-wordX+wordA+wordA+wordB-wordY= 1-1+1+1+1 -1= +2。
我编写了这段代码,但它不计算重复的单词。如果您能帮助我,我将不胜感激。
for(i in 1:nrow(dataset){
counter=0
if(length(grep("wordA",dataset[i,1],)==1)){
counter=counter+1;
}
if(length(grep("wordB",dataset[i,1])==1)){
counter=counter+1;
}
if(length(grep("wordX",dataset[i,1])==1)){
counter=counter-1;
}
if(length(grep("wordY",dataset[i,1])==1)){
counter=counter-1;
}
dataset[i,2]=counter;
}
【问题讨论】:
-
请查看link。一个良好的可重复示例将帮助其他人更轻松地解决您的问题。
-
问题描述中似乎有“行”和“列”的混淆,匹配的内容也很模糊。生成创建 set_A 和 set_B 的代码,并解释为什么“消息列”应该有一个值或 +2。
标签: r pattern-matching