РУКОВОДСТВО — ТАБЛИЦИ — Р

Създавайте безупречни таблици от вашия Dataframe, готови за публикуване

Урок стъпка по стъпка Как да създадете таблици, готови за публикуване

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

В повечето случаи обаче използвам PowerPoint или Excel, за да създам тази таблица, за да изглежда представителна и/или годна за публикуване. Това, разбира се, нарушава възможността за автоматично възпроизвеждане на този резултат. За един от последните ми проекти научих и приложих пакет, който ми позволи да създавам красиви и готови за публикуване таблици с данни, без да напускам моята платформа за наука за данни.

1 Въведение

В тази статия ще ви покажа как да използвате пакета Grammar of Tables (gt), за да създадете безупречни и готови за публикуване таблици, да превърнете настройките си в тема за бързо повторно използване и как да приложите това тема в следващия ви проект за наука за данни.

2 Настройка

По-голямата част от работата ми с клиенти включва „Python и Pandas“. Въпреки това, по обучение, аз съм R човек. Разработих това за R платформата за наука за данни, но ще проуча как това може да се постигне с помощта на Python и Pandas за една от предстоящите ми статии.

Въпреки това, ето списъка със софтуер и пакети, които използвам:

  1. R & RStudio — платформа за наука за данни и IDE на глас.
  2. tidyverse package — този пакет ми позволява да пиша елегантен, четим и ефективен код за манипулиране на кадри с данни
  3. gt package — пакетът Grammar of Tables (gt) за създаване на безупречен дизайн на таблици
  4. Пакет Gapminder — извадка от данните на Gapminder за очакваната продължителност на живота, БВП на глава от населението и населението по страни

2.1 Кратък преглед на граматиката на таблиците (gt)

Пакетът gt следва описателен подход за създаване на таблици, като Grammar of Graphics. Накратко, това ни позволява да уточним какво трябва да се случи, а не да уточним как трябва да се случи – толкова страхотен и четим начин за писане на код.

Пакетът gt дефинира изчерпателен брой области, които да добавите към вашата таблица и да манипулирате тяхната визуализация. В примерите по-долу ще ви обясня как да използвате тези области.

Също така е важно да се отбележи, че можете да създадете таблица за вашия бележник R и да я запишете в няколко формата, включително HTML и PNG, което е полезно, ако трябва да докладвате вашите таблици в различни публикации, т.е. уебсайт или документ на PowerPoint .

2.2 Пакети и константи

Преди да започна със създаването на таблица, споделям този код, който ще зареди - и, ако е необходимо, ще инсталира - необходимите пакети:

Също така използвам някои константи, които ми помогнаха да напиша гъвкав R скрипт. Моля, обърнете внимание, че използвам c_rn, за да укажа максималните номера на редове, които да включа в таблицата, c_save, за да определя дали да запиша всяка стъпка от процеса на създаване на таблицата като файл (който отнема малко време) и c_format, за да посочите изходния формат.

Общият резултат от набора от данни на Gapminder изглежда така:

3 Създайте безупречна и готова за публикуване таблица

Най-елементарното използване на gt пакета е само за предаване на филтрирания кадър с данни към gt функцията. Това обаче не е твърде вълнуващо или добавя някаква полза към стандартния изход на конзолата.

3.1 Добавяне на групираща колона

Това може да не е подходящо за повечето от вашите рамки с данни. Бих искал обаче да покажа как работи това и ще ви помогне да разберете по-добре вашата таблица. За да направя това, предавам колоната континент като колона за групиране и посочвам колоната за държава като колона за етикет на ред.

3.2 Добавяне на обобщени редове

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

3.3 Промяна на етикета за всяка колона

Вярвам, че сте изпитали това и във вашите проекти. Как да етикетирате вашите колони? Вашата рамка с данни често използва технически (т.е. кратки имена без празни интервали), но все пак има функционални имена, които са значими за вашата аудитория. Пример в набора от данни на Gapminder би била колоната lifeExp, която всъщност означава „Очаквана продължителност на живота“. Пакетът gt ни позволява да променяме етикетите за получената таблица, без да я променяме във вашия набор от данни.

3.4 Форматиране на колони

Колоните за форматиране включват няколко неща. В този пример казвам на пакета да прави разлика между числови и валутни колони, тяхното подравняване и колко място (в px) трябва да имат. Функцията opt_row_striping() създава лентови редове, които подобряват четливостта на таблицата.

3.5 Добавяне на заглавия, бележки под линия и източници

Ако планирате да имате цялата подходяща мета-информация като част от оформлението на таблицата, gt пакетът ще ви помогне. Особено възможностите за бележките под линия са полезни, защото можете да приложите функция към тях. В следващия пример ще бъде добавена бележка под линия към страната с най-малко население. Моля, обърнете внимание, че е възможно да използвате маркиране, за да промените оформлението на текста с помощта на функцията md.

3.6 Прилагане на форматиране към таблицата

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

3.7 Прилагане на условно оцветяване на клетки

Друга полезна функция на пакета gt е възможността за оцветяване на клетки въз основа на стойности. В следващия пример ще го използвам по два различни начина. Първо, бих искал да приложа синьо засенчване за колоната „Продължителност на живота“ в първата. За целта ще използвам цветовата палитра с име c_col, която беше посочена като една от константите в началото.

Бих искал да оцветя реда с минималната популация в син цвят по втория начин.

4 Създаване на gt тема за многократна употреба

За да създам тема, трябваше да разбера как да правя разлика между настройките, свързани с външния вид и свързаните със специфичните за данни колони (които ще се променят с всеки набор от данни). За да покажа това, ще използвам набора от данни „Дневни данни за индекса S&P 500“, който е част от gt пакета.

4.1 Създайте gt таблица от набора от данни на S&P

4.2 Създаване на тема

Създадох функция my_theme(), която след това може бързо да се приложи към всяка от вашите gt таблици.

Моля, имайте предвид, че тази тема е създадена с ограничените ми познания. Затова, моля, споделете идеи как да подобрите и опростите този код. Много оценявам.

4.3 Прилагане на формати, специфични за колони

Оставащата стъпка е да форматирате колоните, специфични за S&P. Първо, определям колони с валутен формат.

Накрая добавям обобщени редове към таблицата, включително средно и стандартно отклонение.

5 Заключение

В тази статия ви запознах с gt пакета. След това ви показах как да форматирате таблица, да включите обобщени редове и да приложите условно форматиране на клетки. Освен това обясних как да създадете индивидуална тема, която можете да използвате повторно за всеки проект за данни.

Моля, имайте предвид, че надрасках само повърхността на gt пакета. Освен това познанията ми може да са ограничени и има по-добри начини за постигане на тези резултати с по-малко код. Ако се интересувате, моля, свържете се с други уроци, за да се образовате допълнително. Щастлив съм да споделя страхотни уроци със следния списък:

Какво мислите? Имате ли отзиви за мен?

Моля, не се колебайте да се свържете с мен с всякакви въпроси и коментари. Благодаря ти.