首页 > 解决方案 > 在 R 中包含条件

问题描述

要求在一列中给出JobTitles其中包含的数量。我知道有像,。'CHIEF'JobTitleJobTitles"CHIEF OF DEPARTMENT, (FIRE DEPARTMENT)""BATTALION CHIEF, (FIRE DEPARTMENT)"

但在我想要的是 number of 之前JobTitles,我检查了下面的代码,但两者都不起作用。

'CHIEF' %in% data

match('CHIEF', data)

运行 dput() 后得到什么 在此处输入图像描述

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

谢谢

标签: rfunctioncontains

解决方案


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

推荐阅读