R Language
Błyszczący
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
iserver.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)
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)
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)
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
.
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ówappFile
:
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.