Как разделить строковое значение в футбольной базе данных, используя R - PullRequest
1 голос
/ 09 апреля 2020

Я довольно новичок в мире R, но я нахожусь в процессе самообучения. Проблема, с которой я сталкиваюсь из-за своего набора данных, - это сложный характер. По сути, у меня есть столбец данных, который выглядит следующим образом: «Выигранная скорость, EJ IND LB за 810 000 долларов». Я хотел бы разделить это на несколько новых столбцов, чтобы каждая часть этой строки была в новом столбце.

Пока я сделал это:

str<-strsplit(fa_aw_2019$Transaction," ")

, который возвращает data.frame, показанный ниже:

str        list[28]          List of length of 28
[[1]]       character[7]     'Won' 'Speed,' 'EJ.' 'IND' 'LB' 'for' '$810,000'

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

Любые советы будут высоко оценены.

Спасибо

1 Ответ

1 голос
/ 09 апреля 2020

strsplit создает вложенные списки.

Вы можете взглянуть на stringr::str_split или stringr::str_split_fixed. У них есть аргумент simplify = TRUE, который возвращает символьный вектор. Вторая функция предпочтительнее, если вы знаете, что все ваши символы для разделения имеют одинаковое количество слов

У вас также есть опция с tstrsplit в data.table. Это очень эффективное решение. В этом случае

library(data.table)
df <- copy(fa_aw_2019)
df[, strsplit(Transaction," ")]

# OR IF YOU HAVE SAME NUMBER OF WORDS
df[, strsplit(Transaction," ", fixed = TRUE)]

Будьте осторожны, если в некоторых наблюдениях больше слов, чем в других, потому что вы не сможете использовать fixed, поэтому можете получить грязные данные (что не относится к спискам). )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...