Отделяйте столбец, содержащий escape-символ, в качестве разделителя в R - PullRequest
0 голосов
/ 15 мая 2019

У меня есть столбец «Имя» в R, который содержит имена и назначенный им идентификатор, разделенные символом escape.

Например:

#dput(head(df$columnname))

 structure(c(8L, 410L, 238L, 457L, 34L, 115L), .Label = c("Aaron Gordon\\gordoaa01", 
"Aaron Holiday\\holidaa01", "Abdel Nader\\naderab01", ..., class = "factor")

Я пытаюсь использовать tidyverse или stringr, поскольку это то, к чему привело большинство решений здесь.

Здесь я попробовал несколько решений, таких как:

separate(columnname,
           c("First_Name","Second_Name","Last_Name","ID"))

и

separate(columnname, into = c("Name","ID"), sep = "\\d")

, а также

stringr::str_subset(df$columnname,"\")

Моя главная проблема - "\"условное обозначение.Если бы я мог просто удалить идентификатор, который следует за символом "\", я был бы счастлив.Отдельная функция работала несколько хорошо, но у некоторых игроков есть отчества или инициалы.Используя:

separate(columnname, c("First_name", Last_name"))

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

First_name

P

Last_name

J

Опять же, я просто очень хочу удалитьчто-нибудь после " \ ", так что еще что-нибудь после этого очень полезно.

1 Ответ

0 голосов
/ 15 мая 2019

Поскольку \ является escape-символом в синтаксисе regex, для сопоставления, разделения, определения местоположения и т. Д. В stringr вам необходимо «экранировать escape»:

str_split(df$columnname, "\\\\")
...