在R中包含条件

时间:2018-11-03 12:19:32

标签: r function contains

要求在JobTitles列中提供包含'CHIEF'的数字JobTitle。我知道有JobTitles之类的"CHIEF OF DEPARTMENT, (FIRE DEPARTMENT)""BATTALION CHIEF, (FIRE DEPARTMENT)"

但是在我想输入JobTitles之前,我检查了以下代码,但两者均无效。

'CHIEF' %in% data

match('CHIEF', data)

运行dput()后会得到什么 enter image description here

我的错误在哪里? 以及如何计算包含给定单词的JobTitles

谢谢

1 个答案:

答案 0 :(得分:3)

sum(grepl("CHIEF", data$JobTitle, ignore.case=TRUE)) 

这将为您提供数据中所有JobTitle的数量,而不包含字符串CHIEF(无论大小写)。

您的代码无法正常工作的原因是match和%in%都将完整的字符串作为向量中的元素来查找,也就是说,它们将仅标识只是“ CHIEF”的职务。grep(或grepl)是识别部分字符串匹配项的方法。

包含数据的示例:

 data=data.frame(JobTitle=c("moose","chief head", "chief moose"))

sum(grepl("CHIEF", data$JobTitle, ignore.case=TRUE))

[1] 2