Научете как да създавате привлекателни таблици с данни с R пакети

Въведение

Разработването на смислени визуализации е важна, но предизвикателна задача в науката за данни. Наред с правилния избор на инструменти, при всеки анализ на данни се очаква и общо разбиране на целевата аудитория и целта на анализа. В същия контекст таблиците са мощен и ефективен начин за организиране и обобщаване на всеки наличен набор от данни, особено съдържащи категориални променливи. Таблиците често се използват в отчети заедно с поддържащи визуализации на данни за ефективно съобщаване на резултатите от анализа на данни. С някакъв подходящ наративен текст, таблиците могат точно да споделят констатациите от анализа за вземане на решения в една организация. Въпреки че визуализацията на данни в R е обширна тема сама по себе си поради наличието на няколко стабилни и лесни за използване библиотеки за чертане, същото може да се каже и за таблиците в R. Уебсайтът CRAN предлага много пакети с отворен код за R потребители. Тези пакети могат не само да създават таблици, но и да трансформират основните таблици в красиви таблици, които ефективно съобщават резултатите от анализа.

В тази статия ще обсъдим седем интересни пакета за изграждане на цветни маси в R.

Пакети за създаване на красиви таблици с данни в R

Няколко R пакета предлагат функции за създаване на добре структурирани таблици. Ето няколко пакета, които ще използваме, за да създадем красиви маси.

  1. gt (Лиценз: MIT)

Пакетът gt предлага различен и лесен за използване набор от функции, които ни помагат да създаваме таблици за показване от таблични данни. Философията на gt гласи, че цялостна колекция от части за маса може да се използва за създаване на широка гама от функционални маси. Това са тялото на таблицата, долният колонтитул на таблицата, етикетите на колоните с ключ, етикетите на колоните и заглавката на таблицата. По-долу е илюстрация на архитектурата на gt пакета:

Изходните формати, които gt поддържа в момента, са HTML, LaTeX и RTF. Можете да намерите повече за gt тук. За да инсталирате gt пакета от CRAN, използвайте следната команда:

install.packages(“gt”)

За да инсталирате версията за разработка на gt от GitHub, използвайте следните команди:

devtools::install_github(“rstudio/gt”)

След това ще импортираме пакета gt библиотека.

library(gt)

Нека вземем набора от данни mtcars от предварително инсталираните набори от данни на R. Този набор от данни е извлечен от списание Motor Trend US (1974) и се състои от информация за разхода на гориво заедно с 10 атрибута на автомобила дизайн и характеристики на 32 автомобила (модели от 1973 г. и 1974 г.). Можем да отпечатаме първите няколко реда от набора от данни „mtcars“, като използваме следната команда:

head(mtcars)

След това създаваме нова рамка от данни df, като използваме първите няколко колони и редове от набора от данни mtcars.

Ще извикаме основната функция „gt“ с нашата новосъздадена рамка от данни „df“. Таблицата ще се появи в браузъра ви по подразбиране или в панела на Viewer, ако използвате RStudio или друг R GUI.

df %>%gt()

Таблицата, която създадохме, е проста таблица, тъй като използваните свойства за форматиране са свойствата по подразбиране. Изгледът по подразбиране на таблиците може да се промени с помощта на функцията tab_style(), чрез която можем да насочваме конкретни клетки и да прилагаме стилове към тях.

df %>%gt() %>%
tab_header(title = “mtcars dataset”) %>%
tab_style(
style = list(cell_fill(color = “#b2f7ef”),
cell_text(weight = “bold”)),
locations = cells_body(columns = mpg))%>%
tab_style(
style = list(cell_fill(color = “#ffefb5”),
cell_text(weight = “bold”)), 
locations = cells_body(columns = hp))

2. formattable (Лиценз: MIT + файл LICENSE):

Форматиращите рамки с данни са рамки с данни, които ще бъдат показани в HTML таблици с помощта на функции за форматиране. Този пакет включва техники за създаване на структури от данни с предварително дефинирани правила за форматиране, така че обектите да поддържат оригиналните данни, но да бъдат форматирани. Пакетът се състои от няколко стандартни обекта с възможност за форматиране, включително процент, запетая, валута, счетоводство и научни данни. Можете да намерите повече за formattable тук.

За да инсталирате форматируемия пакет от CRAN, използвайте следната команда:

install.packages(“formattable”)

За да инсталирате версията за разработка на formattable от GitHub, използвайте следните команди:

devtools::install_github(“renkun-ken/formattable”)

След това ще импортираме форматируемия пакет библиотека.

library(formattable)

За да демонстрираме тази библиотека, ще използваме вградената функция color_bar() за сравняване на големината на стойностите в дадени колони с данни.

formattable(df, list(
hp = color_bar(“#e9c46a”),
cyl = color_bar(“#80ed99”),
wt = color_bar(“#48cae4”),
disp = color_bar(“#f28482”)))

3. kableExtra (Лиценз: MIT + файл LICENSE)

Пакетът kableExtra се използва за разширяване на основната функционалност на knitr::kable tables(). Въпреки че knitr::kable() е прост по дизайн, липсват му много функции, които обикновено са налични в други пакети, а kableExtra запълни добре празнината за knitr::kable(). Най-хубавото при kableExtra е, че повечето от неговите възможности за таблици работят както за HTML, така и за PDF формати. Можете да намерите повече за kableExtra тук.

За да инсталирате пакета kableExtra от CRAN, използвайте следната команда:

install.packages(“kableExtra”)

За да инсталирате версията за разработка на kableExtra от GitHub, използвайте следните команди:

remotes::install_github(“haozhu233/kableExtra”)

След това ще импортираме пакета библиотека kableExtra.

library(kableExtra)

Ще извикаме функцията kbl с рамка за данни „df“, за да видим основната версия на таблицата.

kable(df) %>% kable_styling(latex_options = “striped”)

За да стилизираме отделни редове и колони, можем да използваме функциите row_spec() и column_spec().

df %>% kbl() %>%
kable_paper() %>% column_spec(2, color = “white”,
background = spec_color(mtcars$drat[1:2],end = 0.7)) %>%
column_spec(5, color = “white”,
background = spec_color(mtcars$drat[1:6], end = 0.7),
popover = paste(“am:”, mtcars$am[1:6]))

4. dt (Лиценз: GPL-3)

dt е съкращение от „DataTables“. Обектите с данни в R могат да бъдат изобразени като HTML таблици с помощта на JavaScript библиотеката „DataTables“ (обикновено чрез R Markdown или Shiny). Можете да намерите повече за dt тук.

За да инсталирате dt пакета от CRAN, използвайте следната команда:

install.packages(‘DT’)

За да инсталирате версията за разработка на dt от GitHub, използвайте следната команда:

remotes::install_github(‘rstudio/DT’)

След това ще импортираме пакета dt библиотека.

library(DT)

Основната характеристика на пакета DT е способността му да предоставя филтриране, страниране и сортиране на HTML таблици. Използвайки този пакет, можем да разделяме, превъртаме и подреждаме таблици, за да разберем по-добре съдържанието на таблицата.

datatable(
data = mtcars,
caption = “Table”,
filter = “top”
)

5. flextable (Лиценз: GPL-3)

Пакетът flextable ви помага лесно да създавате отчетна таблица от рамка с данни. Можете да обедините клетки, да добавите заглавки, да добавите долни колонтитули, да промените форматирането и да зададете как да се показват данните в клетките. Съдържанието на таблицата може също да съдържа смесени типове текстово и графично съдържание. Таблиците могат да бъдат вградени от документи на R Markdown в документи HTML, PDF, Word и PowerPoint и могат да бъдат вградени с помощта на Package Officer за документи на Microsoft Word или PowerPoint. Таблиците могат също да бъдат експортирани като R диаграми или графични файлове, например png, pdf и jpeg. Можете да намерите повече за flextable тук.

За да инсталирате пакета flextable от CRAN, използвайте следната команда:

install.packages(“flextable”)

За да инсталирате версията за разработка на flextable от GitHub, използвайте следната команда:

devtools::install_github(“davidgohel/flextable”)

След това ще импортираме пакета flextable библиотека.

library(flextable)

За тази библиотека основната функция е flextable. Ще извикаме функцията flextable, за да видим основната версия на таблицата, както е показано по-долу:

flextable(df)

Ще използваме функцията set_flextable_defaults, за да променим външния вид по подразбиране на таблицата.

set_flextable_defaults(
font.family = “Arial”, font.size = 10,
border.color = “#e5383b”,
padding = 6,
background.color = “#EFEFEF”)
flextable(head(df)) %>%
bold(part = “header”)

6. реактивен (Лиценз: MIT + файл LICENSE)

reactable() създава таблица с данни от таблични данни със сортиране и страниране по подразбиране. Таблицата с данни е HTML изпълним модул, който може да се използва в R Markdown документи и Shiny приложения или да се разглежда от R конзола. Базиран е на библиотеката React Table и е направен с reactR. Има много характеристики на „реактивен“; някои от тях са дадени по-долу:

  • Той създава таблица с данни със сортиране, филтриране и пагиниране
  • Има вградено форматиране на колони
  • Поддържа персонализирано изобразяване чрез R или JavaScript
  • Работи безпроблемно в документите R Markdown и приложението Shiny

За инсталиране нареактивенпакет от CRAN, използвайте следната команда:

install.packages(“reactable”)

За да инсталирате версията за разработка на reactable от GitHub, използвайте следните команди:

# install.packages(“devtools”)
devtools::install_github(“glin/reactable”)

След това ще импортираме реактивния библиотечен пакет.

library(reactable)

Ще използваме функцията reactable(), за да създадем таблица с данни. Таблицата ще може да се сортира и ще бъде пагинирана по подразбиране:

reactable(mtcars)

За да променим външния вид на таблицата по подразбиране, ще използваме функцията reactableTheme(). Глобалната опция reactable.theme може също да се използва, ако искате да зададете темата по подразбиране за всички таблици.

library(reactable)
reactable(mtcars)
options(reactable.theme = reactableTheme(
color = “black”,
backgroundColor = “#bde0fe”,
borderColor = “#a3b18a”,
stripedColor = “#a3b18a”,
highlightColor = “#2b2d42”
))

7. reactablefmtr (Лиценз: MIT + файл LICENSE)

Пакетът reactablefmtr подобрява външния вид и форматирането на таблици, създадени с помощта на библиотеката reactable R. Пакетът reactablefmtr включва много програми за условно форматиране, които са много адаптивни и лесни за използване.

За да инсталирате пакетаreactablefmtrот CRAN, използвайте следната команда:

install.packages(“reactablefmtr”)

За да инсталирате версията за разработка на reactablefmtr от GitHub, използвайте следните команди:

remotes::install_github(“kcuilla/reactablefmtr”)

Реактивният пакет в R ви позволява да създавате интерактивни таблици с данни. Въпреки това форматирането на таблици в reactable изисква голямо количество код, което може да е предизвикателство за много потребители на R и трябва да бъде по-мащабируемо. Функцията data_bars() в библиотеката reactablefmtr прави много по-лесно създаването на лентови диаграми.

library(reactablefmtr)
reactable(data,defaultColDef = colDef(
cell = data_bars(data,text_position = “outside-base”)
))

Има няколко начина за промяна на външния вид на data_bars(), включително подравняване на лентата, местоположение на текстов етикет и възможност за добавяне на икони и изображения към лентите.

library(reactablefmtr)
reactable(data,defaultColDef = colDef(cell = data_bars(df, box_shadow = TRUE, round_edges = TRUE,
text_position = “outside-base”,
fill_color = c(“#e81cff”, “#40c9ff”),
background = “#e5e5e5”,fill_gradient = TRUE)
))

Заключение

В тази статия обсъдихме седем мощни R пакета за създаване на красиви таблици за даден набор от данни. Има много повече R библиотеки и наистина някои нови също ще бъдат разработени в бъдеще. Но този урок може да бъде полезен, за да започнете с тези пакети за всеки, който иска да създаде по-красиви и ефективни таблици в R.

Можете да ме последвате в: GitHub, Kaggle, Twitter и LinkedIn.