Поиск…


Создание приложения

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 .
ClicktoRun

Или вы можете просто написать 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, когда ваше приложение запущено. Используйте клавиши со стрелками влево и вправо, чтобы перейти в диалоговое окно «Реактивный журнал».



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow