Я пытаюсь разобрать некоторые странные структуры данных, с которыми я столкнулся во время моих путешествий. По сути они похожи на python или javascript словари, но ключ и значение - это цифры c:
weird <- "{47=4578.0005, 181=23456.7831, 216=7548.2367}"
В надежде преобразовать это в таблицу я попытался преобразовать его в более типичный формат словаря и его синтаксический анализ с использованием jsonlite
:
library(tidyverse)
library(jsonlite)
weird <- parse_json(str_replace(weird, "=", ":"))
#> Error: parse error: invalid object key (must be a string)
Функция parse_json
справедливо жалуется, что ключ не является строкой. Я, конечно, могу разобрать все это, используя str_split
, но я надеялся, что добрая душа может иметь некоторое представление о более элегантном / компактном решении (надеюсь, избегая регулярных выражений в целом), которое может разобрать это в таблицу как таковую:
tibble::tribble(
~ key, ~ value,
47, 4578.0005,
181, 23456.7831,
216, 7548.2367
)
#> # A tibble: 3 x 2
#> key value
#> <dbl> <dbl>
#> 1 47 4578.
#> 2 181 23457.
#> 3 216 7548.
Спасибо!