Как использовать tidyr в Rstudio для разделения столбца с числами и символами? - PullRequest
0 голосов
/ 17 июня 2020

player column

Итак, я использую tidyr в Rstudio и пытаюсь разделить данные в столбце «player» (прилагается ниже) на 4 отдельных столбца: »,« имя »,« должность »и« школа ». Я попытался использовать функцию own (), но не могу разделить число и не могу использовать str_sub, потому что некоторые числа являются двузначными. Кто-нибудь знает, как разделить этот столбец на соответствующие 4 столбца?

1 Ответ

3 голосов
/ 17 июня 2020

Метод, использующий серию вызовов separate.

# Example data
df <- data.frame(
  player = c('11Vita VeaDT | Washington',
             '16Clelin FerrellEDGE | Clemson',
             "17K'Lavon ChaissonEdge | LSU",
             '15Cody FordOT | Oklahoma',
             '20Derrius GuiceRB',
             '1Joe BurrowQB | LSU')) 

Шаги:

  1. отдельные school с использованием |
  2. разделить number, используя различие цифр и букв
  3. , разделить position, используя заглавные и строчные буквы, но начиная с конца
  4. очистить, обрезать пробелы или лишние пробелы вокруг текста
df %>%
  separate(player, into = c('player', 'school'), '\\|') %>%
  separate(player, into = c('number', 'player'), '(?<=[0-9])(?=[A-Za-z])') %>%
  separate(player, into = c('last', 'position'), '(?<=[a-z])(?=[A-Z])') %>%
  mutate_if(is.character, trimws)
# Results
   number         name position      school
1  11         Vita Vea       DT  Washington
2  16   Clelin Ferrell     EDGE     Clemson
3  17 K'Lavon Chaisson     Edge         LSU
4  15        Cody Ford       OT    Oklahoma
5  20    Derrius Guice       RB        <NA>
6   1       Joe Burrow       QB         LSU
...