ПР / ПР№5_Хакова_ИСТ-223
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Практическая работа № 5
«Знакомство с пакетом Shiny»
Выполнил: ст. гр. ИСТ-223 Хакова Ю. М.
Проверил: к.т.н., доцент Лабковская Р.Я.
Цель работы: самостоятельно ознакомиться с пакетом Shine и сделать задание: cоздать веб приложение Shiny с заголовком «Практическая работа №5», использующее на «Боковой панели» виджет «Числовой ввод». При вводе номера комикса приложение в «Основной панели» должно выводить соответствующий комикс с сайта: http://xkcd.com/
Ход работы:
1.Загрузка библиотеки shiny и jsonlite, необходимой для создания интерактивных веб-приложений на языке R.
2. Создание пользовательского интерфейса (UI)
Создание заголовка приложения с помощью titlePanel()
Созднание макета с боковой панелью и основной панелью с помощью sidebarLayout()
numericInput(), позволяющий пользователю ввести номер комикса.
Создание места для динамического отображения изображения комикса в mainPanel() с помощью uiOutput()
3. Реализация серверной логики (server)
output$comic_image = renderUI() — функция, отвечающая за генерацию HTML-кода для отображения комикса
Формирование URL для запроса данных конкретного комикса в формате JSON.
Использование функции tryCatch() для обработки возможных ошибок при запросе данных. Если запрос успешен, данные преобразуются из JSON в R-формат с помощью fromJSON().
Если комикс найден, создается блок с заголовком, изображением и альтернативным текстом комикса:
- tags$h3() для заголовка
- tags$img() для изображения
- tags$p() для текста с описанием комикса
Если данные не были получены, выводится сообщение о том, что комикс не найден.
Код программы представлен на рисунке 1.
Рис. 1. Код программы
Результаты выполнения представлены на рисунках 2, 3, 4.
Рис 2. Результат выполнения программы
Рис. 3. Результат выполнения программы
Рис. 4. Результат выполнения программы
Вывод:
В процессе выполнения лабораторной работы было создано простое интерактивное веб-приложение, позволяющее пользователю получать доступ к комиксам по их номеру. Реализованный функционал демонстрирует основы работы с API, обработки JSON-данных и применения библиотеки Shiny для создания веб-приложений.
Санкт-Петербург
2024
