Telegram Group & Telegram Channel
Динамическая вставка таблиц в RMarkdown

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

Изначально вам необходимо с помощью функции split() разбить основную таблицу, на подтаблицы, о том как это сделать я уже рассказывал.

Теперь для того, что бы каждую подтаблицу вывести в RMarkdown как отдельную таблицу необходимо пройтись по списку подтаблиц, например с помощью функции purrr:walk(), и вывести по очереди их на печать.

Ниже небольшой пример кода, как это можно сделать:

library(knitr)
library(kableExtra)
library(purrr)

# разбиваем большую таблицу на список подтаблиц
df_list <- split(df, df$type)

# печатаем по очереди каждую из подтаблиц
purrr::walk(names(df_list), ~{
cat(
knitr::kable(df_list[[.x]], caption = paste("Таблица для типа:", .x), format = "html") %>%
kableExtra::kable_styling(full_width = FALSE) %>%
as.character()
)
cat("\n\n") # Добавляем пустые строки между таблицами
})


Этот код делает следующее:

1. Разбивает таблицу df на список подтаблиц;
2. Использует purrr::walk() для итерации по именам подтаблиц в нашем списке;
3. Создает HTML-таблицу для каждой подтаблицы с помощью kable();
4. Добавляет стили с kable_styling()
5. Выводит каждую таблицу в документ с помощью cat()
6. Добавляет пустые строки между таблицами для лучшей читаемости.

Надеюсь, этот подход будет полезен в вашей работе с RMarkdown. Если у вас возникнут вопросы или вы захотите поделиться своими методами работы с данными, пишите в комментариях!

#заметки_по_R



group-telegram.com/R4marketing/1323
Create:
Last Update:

Динамическая вставка таблиц в RMarkdown

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

Изначально вам необходимо с помощью функции split() разбить основную таблицу, на подтаблицы, о том как это сделать я уже рассказывал.

Теперь для того, что бы каждую подтаблицу вывести в RMarkdown как отдельную таблицу необходимо пройтись по списку подтаблиц, например с помощью функции purrr:walk(), и вывести по очереди их на печать.

Ниже небольшой пример кода, как это можно сделать:

library(knitr)
library(kableExtra)
library(purrr)

# разбиваем большую таблицу на список подтаблиц
df_list <- split(df, df$type)

# печатаем по очереди каждую из подтаблиц
purrr::walk(names(df_list), ~{
cat(
knitr::kable(df_list[[.x]], caption = paste("Таблица для типа:", .x), format = "html") %>%
kableExtra::kable_styling(full_width = FALSE) %>%
as.character()
)
cat("\n\n") # Добавляем пустые строки между таблицами
})


Этот код делает следующее:

1. Разбивает таблицу df на список подтаблиц;
2. Использует purrr::walk() для итерации по именам подтаблиц в нашем списке;
3. Создает HTML-таблицу для каждой подтаблицы с помощью kable();
4. Добавляет стили с kable_styling()
5. Выводит каждую таблицу в документ с помощью cat()
6. Добавляет пустые строки между таблицами для лучшей читаемости.

Надеюсь, этот подход будет полезен в вашей работе с RMarkdown. Если у вас возникнут вопросы или вы захотите поделиться своими методами работы с данными, пишите в комментариях!

#заметки_по_R

BY R4marketing | канал Алексея Селезнёва | Язык R




Share with your friend now:
group-telegram.com/R4marketing/1323

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

One thing that Telegram now offers to all users is the ability to “disappear” messages or set remote deletion deadlines. That enables users to have much more control over how long people can access what you’re sending them. Given that Russian law enforcement officials are reportedly (via Insider) stopping people in the street and demanding to read their text messages, this could be vital to protect individuals from reprisals. In view of this, the regulator has cautioned investors not to rely on such investment tips / advice received through social media platforms. It has also said investors should exercise utmost caution while taking investment decisions while dealing in the securities market. Two days after Russia invaded Ukraine, an account on the Telegram messaging platform posing as President Volodymyr Zelenskiy urged his armed forces to surrender. Andrey, a Russian entrepreneur living in Brazil who, fearing retaliation, asked that NPR not use his last name, said Telegram has become one of the few places Russians can access independent news about the war. Investors took profits on Friday while they could ahead of the weekend, explained Tom Essaye, founder of Sevens Report Research. Saturday and Sunday could easily bring unfortunate news on the war front—and traders would rather be able to sell any recent winnings at Friday’s earlier prices than wait for a potentially lower price at Monday’s open.
from it


Telegram R4marketing | канал Алексея Селезнёва | Язык R
FROM American