Этот вопрос является расширением другого сообщения под названием «Разделить» имя в столбцы «FirstName» и «LastName» фрейма данных - и фрейм данных представлен ниже.Разделите имя на разные столбцы, используя Tidyr
NAME <- c('John Doe','Peter Gynn','Jolie Hope-Douglas', 'Muhammad Arnab Halwai')
TITLE <- c("assistant", "manager", "assistant", "specialist")
tteam<- data.frame(NAME, TITLE)
Хороший код был предоставлен, чтобы показать, как использовать tidyr
отделить каждое имя в имени и фамилии. У меня есть ситуация, когда есть имена с тремя частями, такими как имя, приведенное в примере - «Мухаммад Арнаб Халвей». Я считаю, что приведенный ниже код отделяет это имя от «Мухаммада» и «Арнаб Халвей». Я пытаюсь переконфигурировать код, чтобы создать «Мухаммад Арнаб» и «Халвей».
library(tidyr)
extract(tteam, NAME, c("FirstName", "LastName"), "([^ ]+) (.*)")
Вы можете получить желаемый результат только с 'экстрактом (tteam, NAME, с ("FirstName", "LastName")," (. +) (. +) ') 'или' separate (tteam, NAME, c ("FirstName", "LastName"),' (? = [^] + $) ') '. Проверьте свои данные; суффиксы или статьи («Шарль де Голль») нарушат этот подход. – alistaire