R Language
блестящий
Поиск…
Создание приложения
Shiny - это R- пакет, разработанный RStudio, который позволяет создавать веб-страницы для интерактивного отображения результатов анализа в R.
Существует два простых способа создания приложения Shiny:
- в одном
.R
файле или - в двух файлах:
ui.R
иserver.R
.
Блестящее приложение разделено на две части:
- ui : скрипт пользовательского интерфейса, контролирующий макет и внешний вид приложения.
- server : серверный скрипт, содержащий код, позволяющий приложению реагировать.
Один файл
library(shiny)
# Create the UI
ui <- shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
# Create the server function
server <- shinyServer(function(input, output){})
# Run the app
shinyApp(ui = ui, server = server)
Два файла
Создать файл ui.R
library(shiny)
# Define UI for application
shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
Создать файл server.R
library(shiny)
# Define server logic
shinyServer(function(input, output){})
Переключатель
Вы можете создать набор переключателей, используемых для выбора элемента из списка.
Можно изменить настройки:
- selected: Первоначально выбранное значение (символ (0) без выбора)
- встроенный: горизонтальный или вертикальный
- ширина
Также можно добавить HTML.
library(shiny)
ui <- fluidPage(
radioButtons("radio",
label = HTML('<FONT color="red"><FONT size="5pt">Welcome</FONT></FONT><br> <b>Your favorite color is red ?</b>'),
choices = list("TRUE" = 1, "FALSE" = 2),
selected = 1,
inline = T,
width = "100%"),
fluidRow(column(3, textOutput("value"))))
server <- function(input, output){
output$value <- renderPrint({
if(input$radio == 1){return('Great !')}
else{return("Sorry !")}})}
shinyApp(ui = ui, server = server)
Группа флажков
Создайте группу флажков, которые могут использоваться для одновременного переключения нескольких вариантов. Сервер получит вход в качестве символьного вектора выбранных значений.
library(shiny)
ui <- fluidPage(
checkboxGroupInput("checkGroup1", label = h3("This is a Checkbox group"),
choices = list("1" = 1, "2" = 2, "3" = 3),
selected = 1),
fluidRow(column(3, verbatimTextOutput("text_choice")))
)
server <- function(input, output){
output$text_choice <- renderPrint({
return(paste0("You have chosen the choice ",input$checkGroup1))})
}
shinyApp(ui = ui, server = server)
Можно изменить настройки:
- label: title
- выбор: выбранные значения
- selected: Первоначально выбранное значение (NULL без выбора)
- встроенный: горизонтальный или вертикальный
- ширина
Также можно добавить HTML.
Выберите поле
Создайте список выбора, который можно использовать для выбора одного или нескольких элементов из списка значений.
library(shiny)
ui <- fluidPage(
selectInput("id_selectInput",
label = HTML('<B><FONT size="3">What is your favorite color ?</FONT></B>'),
multiple = TRUE,
choices = list("red" = "red", "green" = "green", "blue" = "blue", "yellow" = "yellow"),
selected = NULL),
br(), br(),
fluidRow(column(3, textOutput("text_choice"))))
server <- function(input, output){
output$text_choice <- renderPrint({
return(input$id_selectInput)})
}
shinyApp(ui = ui, server = server)
Можно изменить настройки:
- label: title
- выбор: выбранные значения
- selected: Первоначально выбранное значение (NULL без выбора)
- multiple: TRUE или FALSE
- ширина
- размер
- selectize: TRUE или FALSE (для использования или не selectize.js, измените отображение)
Также можно добавить HTML.
Запустить блестящее приложение
Вы можете запустить приложение несколькими способами, в зависимости от того, как вы создаете приложение. Если ваше приложение разделено на два файла ui.R
и server.R
или если все ваше приложение находится в одном файле.
1. Приложение для двух файлов
Два файла ui.R
и server.R
должны находиться в одной папке. Затем вы можете запустить свое приложение, запустив в консоли shinyApp()
и передав путь к каталогу, содержащему приложение Shiny.
shinyApp("path_to_the_folder_containing_the_files")
Вы также можете запустить приложение непосредственно из Rstudio, нажав кнопку « Запустить приложение» , которая появляется в Rstudio при server.R
файла ui.R
или server.R
.
Или вы можете просто написать runApp()
на консоли, если ваш рабочий каталог - это каталог Shiny App.
2. Одно файловое приложение
Если вы создадите свой один файл R
вы также можете запустить его с помощью функции shinyApp()
.
- внутри вашего кода:
library(shiny)
ui <- fluidPage() #Create the ui
server <- function(input, output){} #create the server
shinyApp(ui = ui, server = server) #run the App
- в консоли, добавив путь к файлу
.R
содержащему приложение Shiny с параметромappFile
:
shinyApp(appFile="path_to_my_R_file_containig_the_app")
Элементы управления
функция | Виджет |
---|---|
actionButton | Кнопка действия |
checkboxGroupInput | Группа флажков |
checkboxInput | Один флажок |
dateInput | Календарь для выбора даты |
dateRangeInput | Пара календарей для выбора диапазона дат |
FileInput | Мастер управления загрузкой файлов |
HelpText | Текст справки, который можно добавить в форму ввода |
numericInput | Поле для ввода чисел |
Радио-кнопки | Набор переключателей |
selectInput | Ящик с возможностью выбора из |
sliderInput | Ползунок |
submitButton | Кнопка отправки |
ввод текста | Поле для ввода текста |
library(shiny)
# Create the UI
ui <- 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..."))
)
))
# Create the server function
server <- shinyServer(function(input, output){})
# Run the app
shinyApp(ui = ui, server = server)
отладка
debug()
и debugonce()
не будут работать хорошо в контексте самой блестящей отладки. Однако инструкции browser()
вставленные в критические места, могут дать вам много информации о том, как работает ваш блестящий код. См. Также: Отладка с использованием browser()
Режим витрины
Режим витрины отображает ваше приложение рядом с кодом, который его генерирует, и выделяет строки кода на сервере.R, когда он запускает их.
Существует два способа включить режим витрины:
- Запустите приложение Shiny с аргументом display.mode = "showcase", например,
runApp("MyApp", display.mode = "showcase")
. - Создайте файл под названием
DESCRIPTION
в папке вашего Shiny app и добавьте в него эту строку:DisplayMode: Showcase
.
Реактивный регистратор документов
Reactive Log Visualizer предоставляет интерактивный браузерный инструмент для визуализации реактивных зависимостей и исполнения в вашем приложении. Чтобы включить options(shiny.reactlog=TRUE)
Visualizer, выполните options(shiny.reactlog=TRUE)
в консоли R и добавьте эту строку кода в файл server.R. Чтобы запустить Reactive Log Visualizer, нажмите Ctrl + F3 в Windows или Command + F3 на Mac, когда ваше приложение запущено. Используйте клавиши со стрелками влево и вправо, чтобы перейти в диалоговое окно «Реактивный журнал».