Разделить списки динамически - PullRequest
0 голосов
/ 20 мая 2019

У меня есть список

query= { "id":"2317",   "product":"112",  "tag":"A,B,C"}

Я хочу вывод, как это -

query1= { "id":"2317",   "product":"112",  "tag":"A"}
query2= { "id":"2317",   "product":"112",  "tag":"B"}
query3= { "id":"2317",   "product":"112",  "tag":"C"}

p.s: тег содержит любое количество элементов в диапазоне от 1 до n элементов. Поэтому, если у тега есть «n» элементов, нам нужно получить «n» количество запросов.

Может ли кто-нибудь помочь мне, как мы можем сделать это в R? может быть, с помощью петель или что-то работает.

Заранее спасибо.>!

Примечание: в R запрос будет храниться как символ. Поэтому я использую query = fromJSON (запрос), тогда он будет сохранен в виде списка.

1 Ответ

0 голосов
/ 20 мая 2019

Полагаю, самый простой способ - сначала преобразовать его в фрейм данных, разбить столбец тегов и преобразовать обратно в JSON:

df <- dplyr::bind_rows(fromJSON('{ "id":"2317",   "product":"112",  "tag":"A,B,C"}'))
s <- strsplit(df$tag, split = ",")
n <- length(unlist(s))
df <- data.frame(id = rep(df$id, n), product = rep(df$product, n), tag = unlist(s))
toJSON(df)

Это даст вам:

[{"id":"2317","product":"112","tag":"A"},{"id":"2317","product":"112","tag":"B"},{"id":"2317","product":"112","tag":"C"}] 

Вы можете легко записать это в файл, используя jsonlite::write_json(df, path = 'file_name.json')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...