我有一个数据框,该数据框基本上是乘客的泰坦尼克号列表,具有名称(字符串),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" ...```
答案 0 :(得分:1)
我们可以将filter
与str_detect
配合使用,以匹配“名称”列上的子字符串“ Miss”。 \\b
附加在开头和结尾以指定单词边界
library(tidyverse)
thetitanic %>%
filter(str_detect(Name, "\\bMiss\\b"))