我如何从列中的名称提取标题? [英] How can I extract from title from name in a column?

查看:130
本文介绍了我如何从列中的名称提取标题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一列名为Hobs,Mr. jack的名字,即lastname,title。名字。标题有4种 - 先生,夫人,小姐,主人。如何搜索列中的每个项目&返回标题,我可以在另一列中存储?

 名称< -c(Hobs,Mr. jack, Hobs,Master。John,Hobs,Mrs. Nicole,........)

期望的输出 - 带有值的列title - (Mr,Master,Mrs,.....)



我试过这样的事情:

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

不成功>。


<可能是这样的:

  library(stringr)
>名称< -c(滚刀,杰克先生,滚刀,主人约翰,滚刀,妮可夫人)
> str_extract(string = Name,pattern =(Mr | Master | Mrs)\\。)
[1]Mr. 主。 太太。

一个更好的正则表达式可能会预先排除这段时间,或者您可以在第二步中删除它们。 / p>

I have a column of names of the form "Hobs, Mr. jack" i.e. lastname, title. firstname. title has 4 types -"Mr.", "Mrs.","Miss.","Master." How can I search for each item in the column & return the title ,which I can store in another column ?

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

desired output - a column "title" with values - ("Mr","Master", "Mrs",.....)

I have tried something like this:

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

no success >.<

解决方案

Maybe something like this:

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."   

A fancier regex might exclude the period up front, or you could remove them in a second step.

这篇关于我如何从列中的名称提取标题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆