Как создать подмножество на основе, если оно содержит определенную строку - PullRequest
1 голос
/ 31 мая 2019

У меня есть фрейм данных, который в основном представляет собой список пассажиров «Титаника» со столбцами «Имя» (строка), «PClass» (1-й, 2-й или 3-й), «Возраст», «Пол» (женский или мужской) и «Выживший» (0 или 1) .

По сути, я хочу извлечь незамужних женщин из моего фрейма данных.

Я хочу извлечь только имена, которые содержат "Мисс". Я не могу использовать оператор ==, потому что он будет совпадать с ним одинаково. Любая помощь будет оценена. Спасибо всем.

Я пытался "Mrs" %in% thetitanic$Name, но это не сработало.

 $ Name    : Factor w/ 1310 levels "Abbing, Mr Anthony",..: 22 25 26 27 24 31 45 46 50 54 ...
 $ PClass  : Factor w/ 3 levels "1st","2nd","3rd": 1 1 1 1 1 1 1 1 1 1 ...
 $ Age     : num  29 2 30 25 0.92 47 63 39 58 71 ...
 $ Sex     : Factor w/ 2 levels "female","male": 1 1 2 1 2 2 1 2 1 2 ...
 $ Survived: int  1 0 0 0 1 1 1 0 1 0 ...
 - attr(*, "na.action")= 'omit' Named int  13 14 15 30 33 36 41 46 47 53 ...
  ..- attr(*, "names")= chr  "13" "14" "15" "30" ...```

1 Ответ

1 голос
/ 31 мая 2019

Мы можем использовать filter с str_detect, чтобы соответствовать подстроке «Miss» в столбце «Имя». \\b добавляется в начало и конец для указания границы слова

library(tidyverse)
thetitanic %>%
     filter(str_detect(Name, "\\bMiss\\b"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...