Опубликовано по ссылке:
Если вы никогда прежде не использовали Shiny, добро пожаловать! Shiny представляет собой фреймворк языка программирования R, позволяющий с легкостью создавать функциональные интерактивные веб-приложения. С помощью Shiny вы можете перенести свою работу в R и представить ее результаты в браузере, чтобы все могли свободно ими пользоваться. Shiny способствует разработке сложных и эффективных веб-приложений с минимумом усилий.
В прошлом разработка веб-приложений на R давалась программистам весьма непросто, и на то было две основные причины:
им нужно было в полной мере владеть современными веб-технологиями, включая языки HTML, CSS и JavaScript;
в сложных интерактивных приложениях им приходилось внимательно отслеживать все связи между элементами, чтобы изменения входных значений влияли только на связанные с ними выходные.
Библиотека Shiny значительно облегчает работу программистам при создании веб-приложений за счет:
предоставления тщательно проработанного набора функций пользовательского интерфейса для автоматического генерирования кода HTML, CSS и JavaScript, необходимого для решения конкретных задач. Это означает, что вам не понадобится доскональное знание этих языков программирования и разметки, пока вам не станет тесно в рамках предоставляемых Shiny возможностей;
применения нового стиля программирования, получившего название реактивное. С помощью этой концепции можно легко отслеживать и поддерживать зависимости между фрагментами кода. На практике это означает, что при изменении значения входного элемента Shiny автоматически определит, как с наименьшими усилиями обновить все связанные выходные элементы.
Разработчики используют Shiny для:
создания дашбордов, помогающих в отслеживании высокоуровневых показателей с возможностью проводить детализированный анализ при необходимости;
замены сотен страниц в формате PDF на одно интерактивное приложение, позволяющее пользователю переключаться между нужными ему результатами;
донесения информации о сложных моделях до аудитории, не обладающей техническими знаниями, в виде информативных визуализаций и средств интерактивного анализа;
автоматизации анализа данных в общих рабочих процессах с заменой процесса обмена электронными сообщениями на приложение Shiny, позволяющее пользователям загружать свои данные и выполнять стандартный анализ. Таким образом можно сделать доступным продвинутый анализ в R пользователям, не обладающим навыками программирования;
создания интерактивных демонстраций при обучении статистике и концепциям науки о данных, позволяющих студентам менять входные значения и наблюдать за изменениями в итоговом анализе.
Иными словами, с Shiny вы с легкостью можете делегировать некоторые свои суперспособности в R всякому, у кого есть доступ в интернет.
Для кого предназначена эта книга?
Прочитать данную книгу стоит двум основным группам аудитории:
разработчикам R, заинтересованным в освоении библиотеки Shiny с целью перехода от базового анализа к полноценным интерактивным веб-приложениям. Чтобы взять от книги все, вам необходимо обладать определенным опытом анализа данных при помощи языка R и написания функций;
разработчикам Shiny, желающим улучшить свои навыки владения этим инструментом для написания более быстрых и эффективных приложений. Вам будет особенно полезна эта книга, если ваши приложения постепенно начинают разрастаться и вам становится все сложнее контролировать происходящие в них процессы.
Что вы узнаете из этой книги?
Книга поделена на четыре части.
В первой части мы познакомимся с основами фреймворка Shiny, чтобы вы могли как можно быстрее написать свое первое приложение. Мы поговорим о структуре приложения, полезных компонентах пользовательского интерфейса и основах реактивного программирования.
Во второй части книги мы сделаем один шаг вперед и познакомимся со способами решения распространенных задач, включая взаимодействие с пользователем, загрузку и скачивание данных, создание пользовательского интерфейса при помощи кода, сокращение дублирующихся фрагментов кода и использование Shiny совместно с tidyverse.
Третья часть будет посвящена углубленной теории и практике реактивного программирования – базовой парадигмы, лежащей в основе Shiny. Если вы уже работаете с этой библиотекой, вы сможете извлечь максимум выгоды из этой главы, поскольку она закладывает теоретический фундамент, который поможет вам в разработке сложных интерактивных приложений, предназначенных для решения широкого спектра задач.
В заключительной части книги мы завершим исследование полезных техник, призванных повысить эффективность ваших приложений Shiny. Вы узнаете, как выполнять процесс декомпозиции сложного приложения на функции и модули, использовать пакеты для лучшей организации вашего кода, тестировать свои работы на предмет наличия ошибок, а также измерять и улучшать производительность приложений.
Чего вы не узнаете из этой книги?
Данная книга целиком и полностью посвящена созданию эффективных приложений с помощью библиотеки Shiny и принципам лежащего в ее основе реактивного программирования. Я сделаю все возможное, чтобы показать вам лучшие приемы в работе с данными, программировании на языке R и инженерии программного обеспечения, но вам придется почитать и другие источники, чтобы в полной мере овладеть всеми этими навыками. Если вам нравится, как я пишу, вы можете посмотреть и другие мои книги на эту тему: R for Data Science (https://r4ds.had.co.nz), Advanced R (https://adv-r.hadley.nz) и R Packages (https://r-pkgs.org).
Также есть несколько тем из области Shiny, которых я не буду касаться в данной книге:
при написании приложений мы будем рассматривать только встроенный набор инструментов пользовательского интерфейса (user interface toolkit). Может, он и не самый привлекательный, но для обучения очень даже подойдет. Если вам нужно больше или просто надоел базовый интерфейс, на просторах интернета есть множество пакетов, позволяющих до неузнаваемости изменить внешний вид ваших приложений. Подробнее читайте в разделе книги, посвященном фреймворку Bootstrap;
тема развертывания приложений Shiny выходит за рамки данной книги, поскольку здесь многое зависит от сторонних факторов, не имеющих отношения к R, – больше культурного и организационного свойства, но никак не технического. Если вы делаете первые шаги в вопросах развертывания приложений Shiny, я бы посоветовал посмотреть выступление Джо Ченга по адресу https://www.rstudio.com/resources/rstudioconf-2019/shiny-in-production-principles-practices-and-tools. Из него вы почерпнете все базовые вещи, связанные с развертыванием приложений, включая распространенные проблемы и способы их решения. После этого я бы рекомендовал посетить страницу https://www.rstudio.com/products/connect, посвященную продукту RStudio Connect, предназначенному для развертывания приложений в рамках организации, а также соответствующий раздел на сайте Shiny по адресу https://shiny.rstudio.com/articles/#deployment.
Требования
Перед тем как продолжить, убедитесь в том, что у вас на компьютере стоит все необходимое программное обеспечение для работы:
R
Если у вас еще не установлен R на компьютере, возможно, вы читаете не ту книгу. Мы на протяжении книги будет предполагать, что у вас есть базовые знания о языке R. Если вы хотите узнать, как использовать R, я бы рекомендовал для чтения книгу R for Data Science (https://r4ds.had.co.nz), которая позволит вам сделать первые шаги в этой новой для вас среде.
RStudio
RStudio представляет собой бесплатную интегрированную среду разработки (integrated development environment – IDE) для R. И хотя вы можете создавать и использовать приложения на Shiny в любом окружении R, включая R GUI и ESS, именно RStudio обладает некоторыми полезными особенностями, облегчающими написание, отладку и развертывание приложений Shiny. Мы рекомендуем вам загрузить RStudio Desktop по адресу https://www.rstudio.com/products/rstudio/download и дать ему шанс. В то же время это совершенно не обязательно для разработки приложений и чтения книги.
Пакеты R
В этой книге мы будем использовать множество пакетов R. Вы можете установить их все сразу, запустив следующий код:
install.packages(c(
«gapminder», «ggforce», «gh», «globals», «openintro», «profvis»,
«RSQLite», «shiny», «shinycssloaders», «shinyFeedback»,
«shinythemes», «testthat», «thematic», «tidyverse», «vroom»,
«waiter», «xml2», «zeallot»
))
Если вы уже загружали пакет Shiny ранее, убедитесь, что у вас установлена его версия не ниже 1.6.0.
Принятые в книге обозначения
При написании книги мы использовали следующие обозначения:
курсив – обозначает новые термины, ссылки, электронные адреса, имена и расширения файлов;
моноширинный шрифт – используется в листингах и при обозначении программных элементов, таких как имена переменных или функций, баз данных, типов данных, переменных окружения, выражений и ключевых слов;
Использование примеров кода
Сопроводительные материалы (фрагменты кода, упражнений и т.д.) доступны для загрузки по адресу https://mastering-shiny.org. На все листинги в книге распространяется Лицензия MIT (MIT License): https://www.mit.edu/~amini/LICENSE.md.
Если у вас есть технические вопросы относительно фрагментов кода, можете написать нам по адресу bookquestions@oreilly.com.
Вы вправе использовать материалы из книги для решения своих задач. В основном код, представленный в данной книге, можно использовать в собственных программах и документации. Вы не обязаны обращаться к нам за разрешением, если речь идет не о копировании большого фрагмента текста. Например, использование нескольких фрагментов из книги при написании своей программы не потребует специального разрешения. В то же время продажа или распространение материалов, принадлежащих O’Reilly, предполагает наличие разрешения. Ответы на вопросы с использованием цитирования из этой книги не требуют разрешения. А включение большой части текста из этой книги в свою документацию – требует.
Мы будем признательны, если вы будете ссылаться на книгу при цитировании, хотя и не требуем от вас этого. Обычно такие ссылки включают в себя название книги, имя автора и название издательства, а также ISBN. Например, «Mastering Shiny by Hadley Wickham (O’Reilly). Copyright 2021 Hadley Wickham, 978-1-492-04738-4».
Для получения разрешений можно обратиться по адресу permissions@oreilly.com.
Текст неполный и представлен для ознакомления…
Купить книгу:
Ссылка: https://dmkpress.com/catalog/computer/statistics/978-5-97060-964-4/
Промокоды:
Бумажная версия: промокод Ginko_Shiny_paper
Версия PDF: промокод Ginko_Shiny_PDF
