Разделение строк в R Studio - PullRequest
0 голосов
/ 21 июня 2020

Может ли кто-нибудь мне помочь, поскольку я пытаюсь отделить дату от строки, а слово «футбол» от даты в R?

До 30.08.2020 футбол

После 30 / 8/2020 в формате даты и «футбол» в виде строки

Спасибо

Алан

Ответы [ 2 ]

2 голосов
/ 21 июня 2020

Вот один из способов, основанный на предоставленной вами информации:

string <- '30/8/2020football'
date <- sub('(\\d+\\d+\\d+).*', '\\1', string)
remaining_string <- sub('.*\\d+(.*)', '\\1', string)
remaining_string
#[1] "football"
date <- as.Date(date, '%d/%m/%Y')
date
#[1] "2020-08-30"
1 голос
/ 21 июня 2020

Данные:

v <- '30/8/2020football'

Решение:

df <- data.frame(Date = format(as.Date(unlist(strsplit(sub('([0-9/]+)(football).*', '\\1 \\2', v), " "))[1], "%d/%m/%Y")),
                 String = unlist(strsplit(sub('([0-9/]+)(football).*', '\\1 \\2', v), " "))[2])

Результат:

df
        Date   String
1 2020-08-30 football

Или, если вы предпочитаете более прозрачную процедуру:

Сначала разделите вектор:

v_split <- unlist(strsplit(sub('([0-9/]+)(football).*', '\\1 \\2', v), " "))

Затем настройте фрейм данных:

df <- data.frame(
  Date = format(as.Date(v_split [1], "%d/%m/%Y")),
  String = v_split [2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...