169 похожих чатов

Добрый день! Подскажите, пожалуйста, как развернуть датафрейм с вложенными датафреймами

и списками.

Читал статьи @iMissile и @AlexeySeleznev
https://habr.com/ru/articles/491726/
https://habr.com/ru/articles/448950/

Но что-то пока не хватает нужных компетенций, чтобы сделать Rectangling для этих данных:
r
library(jsonlite)
library(tidyverse)
library(jqr)
#>
#> Присоединяю пакет: 'jqr'
#> Следующие объекты скрыты от 'package:dplyr':
#>
#> combine, contains, do, do_, funs, select, select_, vars
#> Следующий объект скрыт от 'package:purrr':
#>
#> map
#> Следующий объект скрыт от 'package:tidyr':
#>
#> contains
#> Следующий объект скрыт от 'package:ggplot2':
#>
#> vars
raw <- readr::read_file("https://rosrid.ru/api/open-data?year=2022&month=12&card_type=ikrbs")
raw |>
jqr::jq(
'.["cards"] |
.[] |
{registration_number:.registration_number,
stages:.stages,
budgets:.budgets}'
) |>
combine() |>
fromJSON() |>
as_tibble() -> df
df |> unnest_longer(stages) -> df

<sup>Created on 2023-05-24 with [reprex v2.0.2](https://reprex.tidyverse.org)</sup>

И 2 вопрос:
как поступить, если в данных (например, https://rosrid.ru/api/open-data?year=2016&month=01&card_type=ikrbs) в stages бывает пусто.

Возможно кто-то может дать примеры использования jqr.
Нашел например такие:
https://www.carlboettiger.info/2017/12/11/data-rectangling-with-jq/
https://cran.r-project.org/web/packages/jqr/index.html - здесь далее по ссылкам на документацию

Буду признателен за любые идеи, ссылки на примеры и т.д.

5 ответов

10 просмотров

? library(tidyverse) library(jsonlite) library(jqr) raw <- readr::read_file("https://rosrid.ru/api/open-data?year=2022&month=12&card_type=ikrbs") df <- raw %>% jq('[.cards[] | {registration_number, stages}]') %>% jq('[.[] | . + {year:.stages[].year} + {budgets:.stages[].budgets[]} | del(.stages)]') %>% jq('[.[] | . + .budgets | del(.budgets)]') %>% fromJSON() %>% as_tibble()

V-G Автор вопроса
Ilya Shutov
? library(tidyverse) library(jsonlite) library(jq...

Илья, огромное спасибо!!

V G
Илья, огромное спасибо!!

Можете еще сюда заглянуть: https://t.me/r_in_action. Не исключено, что найдете ответы на еще не заданные вопросы.

V-G Автор вопроса
Ilya Shutov
Можете еще сюда заглянуть: https://t.me/r_in_actio...

Илья, добрый день! Помогите, пожалуйста: как лучше использовать jq с кириллицей, если она есть в keys в json? Предполагаю, что нужно смотреть jq_flags, но пока не смог найти примеры. r library(jqr) conn <- '[{ "foo": 1, "bar": 2 }, { "foo": 3, "bar": 4 }, { "foo": 5, "bar": 6 }]' readr::read_file(conn) %>% jq('[.[] | {name: .foo}]') #> [ #> { #> "name": 1 #> }, #> { #> "name": 3 #> }, #> { #> "name": 5 #> } #> ] conn <- '[{ "фу": 1, "bar": 2 }, { "фу": 3, "bar": 4 }, { "фу": 5, "bar": 6 }]' readr::read_file(conn) %>% jq('[.[] | {name: .фу}]') #> Error: jq: error: syntax error, unexpected INVALID_CHARACTER (Windows cmd shell quoting issues?) at <top-level>, line 1: #> [.[] | {name: .фу}] <sup>Created on 2023-05-26 with [reprex v2.0.2](https://reprex.tidyverse.org)</sup>

V G
Илья, добрый день! Помогите, пожалуйста: как лучш...

conn <- '[{ "фу": 1, "bar": 2 }, { "фу": 3, "bar": 4 }, { "фу": 5, "bar": 6 }]' readr::read_file(conn) |> jqr::jq('[.[] | {name: ."фу"}]') #> [ #> { #> "name": 1 #> }, #> { #> "name": 3 #> }, #> { #> "name": 5 #> } #> ]

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта