要求在JobTitles
列中提供包含'CHIEF'
的数字JobTitle
。我知道有JobTitles
之类的"CHIEF OF DEPARTMENT, (FIRE DEPARTMENT)"
,"BATTALION CHIEF, (FIRE DEPARTMENT)"
。
但是在我想输入JobTitles
之前,我检查了以下代码,但两者均无效。
'CHIEF' %in% data
match('CHIEF', data)
我的错误在哪里?
以及如何计算包含给定单词的JobTitles
?
谢谢
答案 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