_Рекомендую начать с урока 1 и урока 2.
#Добавьте контрольные виджеты
Этот урок покажет вам как добавить контрольные виджеты в аше приложение Shiny. Что такое виджет? Это веб элемент с которым может взаимодействовать пользователь. Виджеты обеспечивают путь для ваших пользователей отправить сообщение приложению Shiny. Виджеты Shiny собирают значения от полльзователя. Когда пользователь изменяет виджет, значение, соответственно, изменяется. Это устанавливает возможности, которые будут более подробнее показаны в уроке 4.
В Shiny определен ряд встроенных виджетов, каждый из которых создан с помощью соответствующим образом названной функции R. Например, содержится функция actionButton, которая создает кнопку действия и функция namessliderInput, которая создает ползунок (slider bar).
Вот стандартные виджеты Shiny
| function | widget |
| actionButton | Action Button |
| checkboxGroupInput | A group of check boxes |
| checkboxInput | A single check box |
| dateInput | A calendar to aid date selection |
| fileInput | A file upload control wizard |
| helpText | Help text that can be added to an input form |
| numericInput | A field to enter numbers |
| radioButtons | A set of radio buttons |
| selectInput | A box with choices to select from |
| sliderInput | A slider bar |
| submitButton | A submit button |
| textInput | A field to enter text |
некоторые из этих виджетов построены с использованием проекта Twitter Bootstrap - популярной открытой структуры для построения пользовательских интерфейсов.
Вы можете добавить виджет на вашу веб-страницу тем же путем, которым вы добавляли содержимое HTML в уроке 2. ЧТобы добавить свой виджет в приложение, разместите функцию виджета в соответствующую панель в код файла ui.R.
У функции каждого виджета есть несколько аргументов. Первые два аргумента для любого виджета это:
В этом примере имя виджета - “action”, а метка - “Action”:
actionButton("action", label = "Action")
Остальные аргументы могут отличаться от виджета к виджету, в зависимости от того, какие операции виджет должен выполнять. Это могут быть входные данные, ранги или другое. Вы можете найти конкретные аргументы, требуемые для виджетоы на страницы помощи по соответствующей функции виджета (?selectInput).
Скрипт ui.R, размещенный ниже, создает приложение, скрин которого расположен выше. Измените свой файл ui.R приложения App-1, а затем запустите приложение.
# ui.R
shinyUI(fluidPage(
titlePanel("Basic widgets"),
fluidRow(
column(3,
h3("Buttons"),
actionButton("action", label = "Action"),
br(),
br(),
submitButton("Submit")),
column(3,
h3("Single checkbox"),
checkboxInput("checkbox", label = "Choice A", value = TRUE)),
column(3,
checkboxGroupInput("checkGroup",
label = h3("Checkbox group"),
choices = list("Choice 1" = 1,
"Choice 2" = 2, "Choice 3" = 3),
selected = 1)),
column(3,
dateInput("date",
label = h3("Date input"),
value = "2014-01-01"))
),
fluidRow(
column(3,
dateRangeInput("dates", label = h3("Date range"))),
column(3,
fileInput("file", label = h3("File input"))),
column(3,
h3("Help text"),
helpText("Note: help text isn't a true widget,",
"but it provides an easy way to add text to",
"accompany other widgets.")),
column(3,
numericInput("num",
label = h3("Numeric input"),
value = 1))
),
fluidRow(
column(3,
radioButtons("radio", label = h3("Radio buttons"),
choices = list("Choice 1" = 1, "Choice 2" = 2,
"Choice 3" = 3),selected = 1)),
column(3,
selectInput("select", label = h3("Select box"),
choices = list("Choice 1" = 1, "Choice 2" = 2,
"Choice 3" = 3), selected = 1)),
column(3,
sliderInput("slider1", label = h3("Sliders"),
min = 0, max = 100, value = 50),
sliderInput("slider2", "",
min = 0, max = 100, value = c(25, 75))
),
column(3,
textInput("text", label = h3("Text input"),
value = "Enter text..."))
)
))
Пропробуйте как работает каждый виджет, чтобы понять, для чего он работает. Экспериментируйте с изменением значений в функциях виджетов и наблюдайте за эффектами. Если вам интересно, более подробно почитайте в макете этого приложения в руководстве по макетам (application layout guide). Этот урок не предусматривает изучение этого более сложного макета.
Перепишите ваш скрипт, чтобы создать пользовательский интерфейс, который показан на рисунке ниже. Обратите внимание, что это приложение использует базовый макет без колонок и содержит три виджета, показаных выше. Другие значения выпадающего списка показаны ниже.
добавлять полностью функциональные виджеты в приложения очень просто. Shiny содержит набор функций для создания этих виджетов. Каждый виджет требует своих имени иметки. Некоторые функции требуют специфических условий для их исполнения. Вы добавили в сове приложение Shiny также как и добавили различный HTML контент (см. Урок 2).
Галерея виджетов Shiny представляет шаблоны, которые вы можете быстро добавить в свои приложения. Чтобы использовать шаблоны, посетите галерею. Галерея отображает каждый виджет Shiny и показывает как изменяется значение виджета в ответ на изменение входных данных.
Выберите виджет и нажмите “See Code” под виджетом. Для того, чтобы использовать код, скопируйте его и вставьте в свой файл ui.R.
# ui.R
shinyUI(fluidPage(
titlePanel("censusVis"),
sidebarLayout(
sidebarPanel(
helpText("Create demographic maps with
information from the 2010 US Census."),
selectInput("var",
label = "Choose a variable to display",
choices = list("Percent White", "Percent Black",
"Percent Hispanic", "Percent Asian"),
selected = "Percent White"),
sliderInput("range",
label = "Range of interest:",
min = 0, max = 100, value = c(0, 100))
),
mainPanel()
)
))