如果你想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(名稱, 「夫人」), 「太太」,「其他「)),但是這似乎不起作用,因爲出現了一個意外的符號錯誤 –