0

「Hobs、Mr. jack」、つまり名字、役職という形式の名前の列があります。ファーストネーム。称号は「Mr.」「Mrs.」「Miss.」「Master」の4種類。列内の各アイテムを検索してタイトルを返すにはどうすればよいですか?別の列に保存できますか?

Name <- c("Hobs, Mr. jack","Hobs, Master. John","Hobs, Mrs. Nicole",........)

必要な出力 - 値を含む列「タイトル」 -("Mr","Master", "Mrs",.....)

私はこのようなことを試しました:

f <- function(d) {
      if (grep("Mr", d$title)) {
                  gsub("$Mr$", "Mr", d$title, ignore.case = T)
           }
 }

成功しない >.<

4

2 に答える 2

3

多分このようなもの:

library(stringr)
> Name <- c("Hobs, Mr. jack","Hobs, Master. John","Hobs, Mrs. Nicole")
> str_extract(string = Name,pattern = "(Mr|Master|Mrs)\\.")
[1] "Mr."     "Master." "Mrs."   

より洗練された正規表現では、前もってピリオドを除外するか、2 番目のステップでピリオドを削除できます。

于 2015-12-04T23:28:06.877 に答える