如何根据是否包含特定字符串进行子集

时间:2019-05-31 15:58:19

标签: r

我有一个数据框,该数据框基本上是乘客的泰坦尼克号列表,具有名称(字符串),PClass(第一,第二或第三),年龄,性别(男女)和幸存的(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 个答案:

答案 0 :(得分:1)

我们可以将filterstr_detect配合使用,以匹配“名称”列上的子字符串“ Miss”。 \\b附加在开头和结尾以指定单词边界

library(tidyverse)
thetitanic %>%
     filter(str_detect(Name, "\\bMiss\\b"))