使用 Tidyr 将名称分隔到不同的列中
Separate a Name into Different Columns using Tidyr
这个问题是另一个 post 标题的扩展 - 将“姓名”分隔为数据框的“名字”和“姓氏”列 - 下面提供了数据框。
NAME <- c('John Doe','Peter Gynn','Jolie Hope-Douglas', 'Muhammad Arnab Halwai')
TITLE <- c("assistant", "manager", "assistant", "specialist")
tteam<- data.frame(NAME, TITLE)
提供了一个很好的代码来展示如何使用 tidyr
将每个名字分成名字和姓氏。我遇到这样一种情况,名称由三部分组成,例如示例中提供的名称 - "Muhammad Arnab Halwai"。我相信下面的代码会将名称分隔为 "Muhammad" 和 "Arnab Halwai"。我正在尝试重新配置代码以创建 "Muhammad Arnab" 和 "Halwai"。
library(tidyr)
extract(tteam, NAME, c("FirstName", "LastName"), "([^ ]+) (.*)")
只需稍微调整正则表达式即可:
extract(tteam, NAME, c("FirstName", "LastName"), "(.*) ([^ ]+)$")
# FirstName LastName TITLE
# 1 John Doe assistant
# 2 Peter Gynn manager
# 3 Jolie Hope-Douglas assistant
# 4 Muhammad Arnab Halwai specialist
这个问题是另一个 post 标题的扩展 - 将“姓名”分隔为数据框的“名字”和“姓氏”列 - 下面提供了数据框。
NAME <- c('John Doe','Peter Gynn','Jolie Hope-Douglas', 'Muhammad Arnab Halwai')
TITLE <- c("assistant", "manager", "assistant", "specialist")
tteam<- data.frame(NAME, TITLE)
提供了一个很好的代码来展示如何使用 tidyr
将每个名字分成名字和姓氏。我遇到这样一种情况,名称由三部分组成,例如示例中提供的名称 - "Muhammad Arnab Halwai"。我相信下面的代码会将名称分隔为 "Muhammad" 和 "Arnab Halwai"。我正在尝试重新配置代码以创建 "Muhammad Arnab" 和 "Halwai"。
library(tidyr)
extract(tteam, NAME, c("FirstName", "LastName"), "([^ ]+) (.*)")
只需稍微调整正则表达式即可:
extract(tteam, NAME, c("FirstName", "LastName"), "(.*) ([^ ]+)$")
# FirstName LastName TITLE
# 1 John Doe assistant
# 2 Peter Gynn manager
# 3 Jolie Hope-Douglas assistant
# 4 Muhammad Arnab Halwai specialist