У меня есть переменная во фрейме данных, который содержит необработанный текст json. Некоторые наблюдения имеют набор из 14 цифр, которые я хочу извлечь, а некоторые нет. Если в наблюдении есть информация, она находится в следующем формате:
{"размытие": "10010010010010"
Я хочу извлечь 14 цифр после {"размытие": ", если есть совпадение для этой левой части строки. Я пробовал str_extract, но мой синтаксис регулярного выражения не самый лучший, какие-нибудь предложения здесь?
Почему бы просто не использовать позитивный взгляд назад? (?<=\{"blur": ")(\d+)?
используйте dput(head(R_object)) для отображения объекта R. Опубликованный вами текст JSON выглядит как «размытие», а число - отдельно, поэтому то, как вы ввели файл в R, может повлиять на то, какой шаблон использовать.





Если это полностью сформированный JSON, вы можете использовать парсер JSON, но при условии, что
NAтогда попробуйте это.
Второй аргумент strapply - это регулярное выражение. Он возвращает часть, соответствующую группе захвата, то есть часть регулярного выражения в круглых скобках. Аргумент empty=NA сообщает ему, что возвращать, если вхождений не найдено.
library(gsubfn)
s <- c('{"blur": "10010010010010"', 'abc') # test input
strapply(s, '{"blur": "(\\d+)"', empty = NA, simplify = TRUE)
## [1] "10010010010010" NA
А как насчет использования парсера JSON? Разобрать JSON с помощью R