Szukaj…


Utwórz aplikację

Shiny to pakiet R opracowany przez RStudio, który umożliwia tworzenie stron internetowych w celu interaktywnego wyświetlania wyników analizy w R.

Istnieją dwa proste sposoby utworzenia aplikacji Błyszcząca:

  • w jednym pliku .R lub
  • w dwóch plikach: ui.R i server.R .

Błyszcząca aplikacja jest podzielona na dwie części:

  • ui: skrypt interfejs użytkownika A, kontrolując układ i wygląd aplikacji.
  • server : skrypt serwera, który zawiera kod umożliwiający aplikacji zareagowanie.

Jeden plik

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)

Dwa pliki

Utwórz plik ui.R

library(shiny)

# Define UI for application
shinyUI(fluidPage(  
  # Application title
  titlePanel("Hello World!")
))

Utwórz plik server.R

library(shiny)

# Define server logic
shinyServer(function(input, output){})

Przycisk radiowy

Możesz utworzyć zestaw przycisków opcji służących do wybierania elementu z listy.

Można zmienić ustawienia:

  • selected: Początkowo wybrana wartość (znak (0) dla braku wyboru)
  • inline: poziomy lub pionowy
  • szerokość

Możliwe jest również dodanie 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)

wprowadź opis zdjęcia tutaj

Grupa pól wyboru

Utwórz grupę pól wyboru, których można użyć do niezależnego przełączania wielu opcji. Serwer otrzyma dane wejściowe jako wektor znaków wybranych wartości.

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)

wprowadź opis zdjęcia tutaj

Można zmienić ustawienia:

  • etykieta: tytuł
  • wybory: wybrane wartości
  • selected: Początkowo wybrana wartość (NULL dla braku wyboru)
  • inline: poziomy lub pionowy
  • szerokość

Możliwe jest również dodanie HTML.

Wybierz pole

Utwórz listę wyboru, której można użyć do wybrania jednego lub wielu elementów z listy wartości.

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)

wprowadź opis zdjęcia tutaj

Można zmienić ustawienia:

  • etykieta: tytuł
  • wybory: wybrane wartości
  • selected: Początkowo wybrana wartość (NULL dla braku wyboru)
  • wielokrotność: PRAWDA lub FAŁSZ
  • szerokość
  • rozmiar
  • selectize: TRUE lub FALSE (do użytku lub nie selectize.js, zmień wyświetlanie)

Możliwe jest również dodanie HTML.

Uruchom aplikację Shiny

Możesz uruchomić aplikację na kilka sposobów, w zależności od sposobu tworzenia aplikacji. Jeśli Twoja aplikacja jest podzielona na dwa pliki ui.R i server.R lub jeśli cała aplikacja jest w jednym pliku.

1. Aplikacja dwóch plików

Twoje dwa pliki ui.R i server.R muszą znajdować się w tym samym folderze. Następnie możesz uruchomić aplikację, uruchamiając w konsoli funkcję shinyApp() i przekazując ścieżkę do katalogu zawierającego aplikację Shiny.

shinyApp("path_to_the_folder_containing_the_files")  

Możesz także uruchomić aplikację bezpośrednio z Rstudio, naciskając przycisk Uruchom aplikację , który pojawia się w Rstudio po server.R pliku ui.R lub server.R .
ClicktoRun

Lub możesz po prostu napisać runApp() na konsoli, jeśli katalog roboczy to katalog Shiny App.

2. Jedna aplikacja do plików

Jeśli utworzysz plik w jednym R , możesz go również uruchomić za pomocą funkcji shinyApp() .

  • wewnątrz twojego kodu:
library(shiny)

ui <- fluidPage() #Create the ui
server <- function(input, output){} #create the server

shinyApp(ui = ui, server = server) #run the App
  • w konsoli, dodając ścieżkę do pliku .R zawierającego aplikację Shiny za pomocą appFile parametrów appFile :
shinyApp(appFile="path_to_my_R_file_containig_the_app")

Kontroluj widżety

Funkcjonować Widżet
actionButton Przycisk akcji
checkboxGroupInput Grupa pól wyboru
checkboxInput Jedno pole wyboru
dateInput Kalendarz ułatwiający wybór daty
dateRangeInput Para kalendarzy do wybierania zakresu dat
fileInput Kreator kontroli przesyłania plików
Tekst pomocy Tekst pomocy, który można dodać do formularza wprowadzania
numericInput Pole do wprowadzania liczb
przyciski radiowe Zestaw przycisków radiowych
selectInput Pole z opcjami do wyboru
sliderInput Suwak
SubmitButton Przycisk przesyłania
Wprowadzanie tekstu Pole do wprowadzenia tekstu
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)

Debugowanie

debug() i debugonce() nie działają dobrze w kontekście większości debugowania Shiny. Jednak instrukcje browser() wstawione w krytyczne miejsca mogą dać ci wgląd w to, jak działa Twój kod Shiny (nie). Zobacz też: Debugowanie przy użyciu browser()

Tryb prezentacji

Tryb prezentacji wyświetla Twoją aplikację wraz z kodem, który ją generuje, i podświetla wiersze kodu na serwerze. R podczas ich uruchamiania.

Istnieją dwa sposoby włączenia trybu Prezentacja:

  • Uruchom aplikację Shiny z argumentem display.mode = "showcase", np. runApp("MyApp", display.mode = "showcase") .
  • Utwórz plik o nazwie DESCRIPTION w folderze Shiny aplikacji i dodaj w nim następujący wiersz: DisplayMode: Showcase .

Reactive Log Visualizer

Reactive Log Visualizer zapewnia interaktywne narzędzie oparte na przeglądarce do wizualizacji reaktywnych zależności i wykonania w Twojej aplikacji. Aby włączyć Reactive Log Visualizer, wykonaj options(shiny.reactlog=TRUE) w konsoli R lub dodaj ten wiersz kodu do pliku server.R. Aby uruchomić Reactive Log Visualizer, naciśnij Ctrl + F3 w systemie Windows lub Command + F3 na komputerze Mac, gdy aplikacja jest uruchomiona. Użyj lewej i prawej strzałki, aby poruszać się w Reactive Log Visualizer.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow