как извлечь указанные c слова из строки в R? - PullRequest
0 голосов
/ 05 марта 2020

как мне извлечь "7-9", "2-5" и "2-8", а затем вставить в новый столбец как event_time?
event_details
2.9 (S) 7-9 street 【Train 】 # 2097
2.1 (S), улица 2-5 【Поезд 2012 # 2012
2.2 (S) 2-8A TBC 【Поезд】 # 202

1 Ответ

0 голосов
/ 05 марта 2020

Вы действительно не поделились логикой c для извлечения чисел, но на основании ограниченных данных, которыми вы поделились, мы можем сделать:

df$new_col <- sub('.*(\\d+-\\d+).*', '\\1', df$event_details)

df
#               event_details new_col
#1 2.9(S) 7-9 street【Train】     7-9
#2 2.1(S) 2-5 street【Train】     2-5
#3   2.2(S) 2-8A TBC【Train】     2-8

Или то же самое, используя str_extract

df$new_col <- stringr::str_extract(df$event_details, "\\d+-\\d+")

данные

df <- structure(list(event_details = structure(c(3L, 1L, 2L), 
.Label = c("2.1(S) 2-5 street【Train】", 
"2.2(S) 2-8A TBC【Train】", "2.9(S) 7-9 street【Train】"), class = 
"factor")), class = "data.frame", row.names = c(NA, -3L))
...