содержать условие в R - PullRequest
0 голосов
/ 03 ноября 2018

Требуется указать число 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 голосов
/ 03 ноября 2018
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
...