首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用stringr str_extract R提取复杂名称:处理"DE“、"VAN”

使用stringr str_extract R提取复杂名称:处理"DE“、"VAN”
EN

Stack Overflow用户
提问于 2019-07-25 18:19:33
回答 1查看 138关注 0票数 0

我想要处理数据帧中的复杂姓名和姓氏。

代码语言:javascript
复制
list <- c("DUPONT J", "DUPONT DE JEAN, V", "JEAN V Y","DE DUPONT Z V","DUPONT VAN RIVIERE Z")

因此,我只想要完整的姓氏第一个字母

代码语言:javascript
复制
list2 <- c('DUPONT J', 'DUPONT DE JEAN V',"JEAN V","DE DUPONT Z","DUPONT VAN RIVIERE Z")

我尝试使用str_extract函数,但在提取全名时遇到了名称中的"DE“或"VAN”问题。

代码语言:javascript
复制
str_extract(temp1$value, "[A-Z]+\\s[A-Z]")

我认为正确的代码应该是: 1)确定第一个姓氏字母是什么;2)取第一个姓氏字母之前的所有内容。

EN

回答 1

Stack Overflow用户

发布于 2019-07-26 00:05:49

更简单的方法可能是查找字符串末尾的两个重复的单个字符,然后删除第二个字符

代码语言:javascript
复制
gsub("(\\s\\w)\\s\\w$", "\\1", list)

输出还删除了逗号,这可以通过单独的命令来完成

代码语言:javascript
复制
gsub(",", "", gsub("(\\s\\w)\\s\\w$", "\\1", list))

[1] "DUPONT J" "DUPONT DE JEAN V" "JEAN V" "DE DUPONT Z" "DUPONT VAN RIVIERE Z"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57199652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档