R Language
Glänzend
Suche…
App erstellen
Shiny ist ein von RStudio entwickeltes R- Paket, mit dem Webseiten erstellt werden können, um die Ergebnisse einer Analyse in R interaktiv anzuzeigen.
Es gibt zwei einfache Möglichkeiten, eine Shiny-App zu erstellen:
- in einer
.R
Datei oder - in zwei Dateien:
ui.R
undserver.R
.
Eine Shiny-App besteht aus zwei Teilen:
- ui : Ein Benutzeroberflächenskript, das das Layout und das Erscheinungsbild der Anwendung steuert.
- Server : Ein Serverskript, das Code enthält, damit die Anwendung reagieren kann.
Eine Datei
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)
Zwei Dateien
Erstellen Sie die ui.R
Datei
library(shiny)
# Define UI for application
shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
Erstellen Sie die server.R
Datei
library(shiny)
# Define server logic
shinyServer(function(input, output){})
Radio knopf
Sie können eine Reihe von Optionsschaltflächen erstellen, die zum Auswählen eines Elements aus einer Liste verwendet werden.
Es ist möglich, die Einstellungen zu ändern:
- ausgewählt: Der ursprünglich ausgewählte Wert (Zeichen (0) für keine Auswahl)
- Inline: horizontal oder vertikal
- Breite
Es ist auch möglich, HTML hinzuzufügen.
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)
Kontrollkästchen Gruppe
Erstellen Sie eine Gruppe von Kontrollkästchen, mit denen Sie mehrere Optionen unabhängig voneinander umschalten können. Der Server empfängt die Eingabe als Zeichenvektor der ausgewählten Werte.
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)
Es ist möglich, die Einstellungen zu ändern:
- Label: Titel
- Auswahlmöglichkeiten: ausgewählte Werte
- ausgewählt: Der ursprünglich ausgewählte Wert (NULL für keine Auswahl)
- Inline: horizontal oder vertikal
- Breite
Es ist auch möglich, HTML hinzuzufügen.
Kästchen auswählen
Erstellen Sie eine Auswahlliste, mit der ein einzelnes oder mehrere Elemente aus einer Werteliste ausgewählt werden können.
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)
Es ist möglich, die Einstellungen zu ändern:
- Label: Titel
- Auswahlmöglichkeiten: ausgewählte Werte
- ausgewählt: Der ursprünglich ausgewählte Wert (NULL für keine Auswahl)
- mehrere: TRUE oder FALSE
- Breite
- Größe
- selectize: TRUE oder FALSE (für selectize.js verwenden oder nicht, Anzeige ändern)
Es ist auch möglich, HTML hinzuzufügen.
Starten Sie eine Shiny-App
Sie können eine Anwendung auf verschiedene Arten starten, je nachdem, wie Sie Ihre App erstellen. Wenn Ihre App in zwei Dateien aufgeteilt ist, ui.R
und server.R
oder wenn sich Ihre gesamte App in einer Datei befindet.
1. Zwei Dateien App
Ihre beiden Dateien ui.R
und server.R
müssen sich im selben Ordner befinden. Sie können Ihre App dann starten, indem Sie in der Konsole die shinyApp()
Funktion shinyApp()
und den Pfad des Verzeichnisses übergeben, in dem sich die Shiny-App befindet.
shinyApp("path_to_the_folder_containing_the_files")
Sie können die App auch direkt von Rstudio aus starten, indem Sie auf die Schaltfläche App ui.R
server.R
, die beim Öffnen einer ui.R
oder server.R
Datei in ui.R
server.R
wird.
Oder Sie können runApp()
einfach in die Konsole schreiben, wenn das Shiny App-Verzeichnis Ihr Arbeitsverzeichnis ist.
2. Eine Datei App
Wenn Sie Ihre in einer R
Datei erstellen, können Sie sie auch mit der shinyApp()
Funktion starten.
- innerhalb Ihres Codes:
library(shiny)
ui <- fluidPage() #Create the ui
server <- function(input, output){} #create the server
shinyApp(ui = ui, server = server) #run the App
- in der Konsole durch Hinzufügen eines Pfads zu einer
.R
Datei, die die Shiny-Anwendung enthält, mit dem ParameterappFile
:
shinyApp(appFile="path_to_my_R_file_containig_the_app")
Kontrollieren Sie Widgets
Funktion | Widget |
---|---|
Aktionsknopf | Aktionsknopf |
checkboxGroupInput | Eine Gruppe von Kontrollkästchen |
checkboxInput | Ein einzelnes Kontrollkästchen |
dateInput | Ein Kalender zur Auswahl des Datums |
dateRangeInput | Ein Kalender zum Auswählen eines Datumsbereichs |
fileInput | Ein Assistent zum Hochladen von Dateien |
Hilfstext | Hilfetext, der einem Eingabeformular hinzugefügt werden kann |
numerischerEingang | Ein Feld zur Eingabe von Zahlen |
Radio Knöpfe | Eine Reihe von Optionsfeldern |
selectEingabe | Eine Box mit Auswahlmöglichkeiten |
sliderInput | Eine Schiebereglerleiste |
submitButton | Ein Senden-Button |
Text Eingabe | Ein Feld zur Eingabe von Text |
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)
Debuggen
debug()
und debugonce()
funktionieren im Zusammenhang mit den meisten Shiny-Debuggen nicht gut. browser()
Anweisungen, die an kritischen Stellen eingefügt werden, können jedoch einen Einblick in die Funktionsweise Ihres Shiny-Codes (nicht) geben. Siehe auch: Debuggen mit dem browser()
Showcase-Modus
Der Showcase-Modus zeigt Ihre App neben dem Code an, der sie generiert, und markiert die Codezeilen in server.R, während sie ausgeführt werden.
Es gibt zwei Möglichkeiten, den Showcase-Modus zu aktivieren:
- Starten Sie die Shiny-App mit dem Argument display.mode = "showcase", z. B.
runApp("MyApp", display.mode = "showcase")
. - Erstellen Sie eine Datei mit dem Namen
DESCRIPTION
in Ihrem Shiny-App-Ordner und fügen Sie diese Zeile hinzu:DisplayMode: Showcase
.
Reactive Log Visualizer
Reactive Log Visualizer bietet ein interaktives browserbasiertes Tool zur Darstellung reaktiver Abhängigkeiten und der Ausführung in Ihrer Anwendung. Um Reactive Log Visualizer zu aktivieren, führen Sie die options(shiny.reactlog=TRUE)
in der R-Konsole aus oder fügen Sie diese Codezeile in Ihre server.R-Datei ein. Um den Reactive Log Visualizer zu starten, drücken Sie bei laufender App Strg + F3 unter Windows bzw. Befehl + F3 bei Mac. Verwenden Sie die linken und rechten Pfeiltasten, um im Reactive Log Visualizer zu navigieren.