Извлечь часть строки в столбце данных R - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь получить идентификатор, являющийся частью строки в столбце в R. Я хотел бы написать выражение, которое извлекало бы искусство, начиная с IAB и заканчивая числом. как бы я это сделал?

пример строки:

[31] "{\"\"element\"\":\"\"IAB1_4\"\"}"  
[32] "{\"\"element\"\":\"\"IAB19_3\"\"}" 
[33] "{\"\"element\"\":\"\"IAB19_16\"\"}"
[34] "{\"\"element\"\":\"\"IAB9_11\"\"}" 
[35] "{\"\"element\"\":\"\"IAB19_5\"\"}" 
[36] "{\"\"element\"\":\"\"IAB18_1\"\"}"

Мне нужно извлечь только ту часть, которая начинается с IAB и заканчивается числом. Как я мог это сделать?

1 Ответ

3 голосов
/ 25 июня 2019

Мы можем использовать str_extract для сопоставления одной или нескольких цифр (\\d+) после строки 'IAB', за которой следует подчеркивание (_) и одна или несколько цифр (\\d+)

library(stringr)
str_extract(v1, 'IAB\\d+_\\d+')
#[1] "IAB1_4"   "IAB19_3"  "IAB19_16" "IAB9_11"  "IAB19_5"  "IAB18_1" 

Или с regexpr из base R

regmatches(v1, regexpr('IAB\\d+_\\d+', v1))
#[1] "IAB1_4"   "IAB19_3"  "IAB19_16" "IAB9_11"  "IAB19_5"  "IAB18_1" 

data

v1 <- c("{\"\"element\"\":\"\"IAB1_4\"\"}", "{\"\"element\"\":\"\"IAB19_3\"\"}", 
"{\"\"element\"\":\"\"IAB19_16\"\"}", "{\"\"element\"\":\"\"IAB9_11\"\"}", 
"{\"\"element\"\":\"\"IAB19_5\"\"}", "{\"\"element\"\":\"\"IAB18_1\"\"}"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...