Найдите регулярное выражение в R, чтобы вернуть только имя и фамилию или полное имя команды - PullRequest
1 голос
/ 17 февраля 2020

Я пытаюсь очистить столбец, сохранив только имя и фамилию (или полное имя команды: например, "Патриоты Новой Англии".

Вот набор имен с разными стилями, которые необходимо Мне нужна группа захвата вокруг имени и фамилии вместе или полного имени команды:

Matt Schaub QB - ATL    
Phillip Andersen K
Cleveland Browns DEF    
San Francisco 49ers DEF
New England Patriots DEF
J.T. Barrett QB - PIT
Tre McBride WR
N'Keal Harry WR - NE
MyCole Pruitt TE - TEN
J.J. Arcega-Whiteside WR - PHI
Tre'Quan Smith WR - NO

Это все, что я сделал в движке регулярных выражений, прежде чем я начал заблудиться. Даже не уверен, насколько близко это даже было:

[A-Z](\\.|[a-z]+)([A-Z]|\\s)

Ответы [ 2 ]

2 голосов
/ 17 февраля 2020

Вот решение, которое может работать здесь:

input <- c("Matt Schaub QB - ATL", "Phillip Andersen K", "Cleveland Browns DEF",
           "San Francisco 49ers DEF", "New England Patriots DEF", "J.T. Barrett QB - PIT",
           "Tre McBride WR", "N'Keal Harry WR - NE", "MyCole Pruitt TE - TEN",
           "J.J. Arcega-Whiteside WR - PHI", "Tre'Quan Smith WR - NO")
output <- sub("\\s*\\b[A-Z]+(?: - [A-Z]+)?$", "", input)
output

 [1] "Matt Schaub"           "Phillip Andersen"      "Cleveland Browns"     
 [4] "San Francisco 49ers"   "New England Patriots"  "J.T. Barrett"         
 [7] "Tre McBride"           "N'Keal Harry"          "MyCole Pruitt"        
[10] "J.J. Arcega-Whiteside" "Tre'Quan Smith"     

Идея в том, чтобы удалить инициалы или инициалы, которые встречаются в конце имен спортивных команд.

0 голосов
/ 17 февраля 2020

Похоже, у вас есть два возможных шаблона. Мы будем использовать пакет unglue , чтобы протестировать их оба и использовать первый соответствующий. (используя данные Тима).

library(unglue)
patterns <- c(
  "{team_name} {=[A-Z]+} - {=[A-Z]+}", 
  "{team_name} {=[A-Z]+}")

unglue::unglue_vec(input, patterns)
#>  [1] "Matt Schaub"           "Phillip Andersen"      "Cleveland Browns"     
#>  [4] "San Francisco 49ers"   "New England Patriots"  "J.T. Barrett"         
#>  [7] "Tre McBride"           "N'Keal Harry"          "MyCole Pruitt"        
#> [10] "J.J. Arcega-Whiteside" "Tre'Quan Smith"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...