如果你想tidyverse
解决方案,您可以执行以下操作:
library(tidyverse)
df <- "https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/datasets/Titanic.csv"
df <- read.csv(df, stringsAsFactors = FALSE)
df <- as_tibble(df)
df
df %>%
extract(Name,
"Title",
"(Mr|Mrs|Miss) ([^ ]+)",
remove = FALSE) %>%
select(Name, Title)
将返回:
# A tibble: 1,313 x 2
Name Title
* <chr> <chr>
1 Allen, Miss Elisabeth Walton Miss
2 Allison, Miss Helen Loraine Miss
3 Allison, Mr Hudson Joshua Creighton Mr
4 Allison, Mrs Hudson JC (Bessie Waldo Daniels) Mrs
5 Allison, Master Hudson Trevor <NA>
6 Anderson, Mr Harry Mr
7 Andrews, Miss Kornelia Theodosia Miss
8 Andrews, Mr Thomas, jr Mr
9 Appleton, Mrs Edward Dale (Charlotte Lamson) Mrs
10 Artagaveytia, Mr Ramon Mr
# ... with 1,303 more rows
由于G.格罗滕迪克用于提供数据。
巢'ifelse'。 'ifelse(str_detect(Name,“Mr.”),“Mr.”,ifelse(str_detect(Name,“Mrs.”,“Mrs.”,“Other”))' – Psidom
'case_when'是你的朋友 – dshkol
所以,我试过如下:变异(titanic.full,标题= ifelse(str_detect(名称, “先生”), “先生”,ifelse(str_detect(名称, “夫人”), “太太”,“其他“)),但是这似乎不起作用,因为出现了一个意外的符号错误 –