R Markdown. Как сделать отчет в условиях неопределенности?

от автора

Маленький рецепт, который будет полезен при создании динамических отчетов.

Достаточно часто встречается ситуация, когда размер и содержание отчетной формы будет зависеть от состава переданных на вход данных. Речь идет именно о story-telling отчете, а не о простом выводе таблицы. В этом случае, в зависимости от содержания входных данных, могут появляться или исчезать отдельные пункты, графики, таблицы, текст.

Что будет делать классический Excel-Word аналитик? Под каждый новый запрос делать кастомный отчет и сохранять его в отдельный файл. Но можно заглянуть немного под капот и заставить компьютер делать все самостоятельно.

R Markdown позволяет все это выполнить в элегантной форме. Некоторые технические детали ниже.

Основная идея

У нас есть данные, содержание которых может меняться. Например, надо строить отчет по машинам, развозящим грузы (пример абстрактный). Но количество и номера машин, выходящих в рейс, каждый день разные. Но сводка по каждой машине по своей структуре одинакова. Будем отталкиваться от этого.

R Markdown выполняется в несколько проходов. При этом из Rmd сначала формируется .md, а потом из него формируется выходное представление, наиболее часто используеся html.

Намечаются 2 варианта.

  1. Можно динамически вставить в .Rmd нужные блоки (собранные или шаблонизированные).
  2. Можно динамически вставить в .md нужные markdown вставки.

Реализация

Ниже просто пример кода, который каждый желающий может запустить у себя на машине. Он охватывает реализации обоих примеров и минимален, чтобы передать суть.

  1. Динамически вставляем гиперссылки, получаемые из внешнего источника.
  2. Динамически формируем разделы документов на основании данных.

Исходный код и Результирующий отчет

Ссылки

Вот ещё полезная информация на эту тему:

P.S. Для сомневающихся этот пример является неплохой аргументацией, почему имеет смысл посмотреть в сторону R.

Предыдущая публикация — «Медианы выборок. Доверительные интервалы и сравнение».

ссылка на оригинал статьи https://habr.com/ru/post/507910/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *