Looking for shiny Answers? Try Ask4KnowledgeBase
Looking for shiny Keywords? Try Ask4Keywords

shinyKomma igång med glänsande


Anmärkningar

Det här avsnittet ger en översikt över vad glänsande är och varför en utvecklare kanske vill använda den.

Det bör också nämna alla stora ämnen inom glänsande och koppla till de relaterade ämnena. Eftersom dokumentationen för glänsande är ny kan du behöva skapa initialversioner av relaterade ämnen.

Inklusive tomter

Det enklaste sättet att inkludera tomter i din shinyApp är att använda plotOutput i ui och renderPlot i servern. Detta fungerar både med ggPlot

library(shiny)
library(ggplot2)

ui <- fluidPage(
  plotOutput('myPlot'),
  plotOutput('myGgPlot')
)

server <- function(input, output, session){
  output$myPlot = renderPlot({
    hist(rnorm(1000))
  })
  output$myGgPlot <- renderPlot({
    ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) + geom_point()
  })
}

shinyApp(ui, server)
 

Inklusive tabeller

Tabeller inkluderas lättast med DT-paketet , som är ett R-gränssnitt till JavaScript-biblioteket DataTables.

library(shiny)
library(DT)

ui <- fluidPage(
  dataTableOutput('myTable')
)

server <- function(input, output, session){
  output$myTable <- renderDataTable({
    datatable(iris)
  })
}

shinyApp(ui, server)
 

Installation eller installation

Shiny kan köras som ett fristående program på din lokala dator, på en server som kan tillhandahålla blanka appar till flera användare (med glänsande server) eller på shinyapps.io .

  1. Installera Shiny på en lokal dator: i R / RStudio, kör install.packages("shiny") om du installerar från CRAN, eller devtools::install_github("rstudio/shiny") om du installerar från RStudio Github-arkivet. Github-förvaret är värd för en utvecklingsversion av Shiny som möjligen kan ha fler funktioner jämfört med CRAN-versionen, men den kan också vara instabil.

Enkel app

Varje shiny app innehåller två delar: En användargränssnittsdefinition ( UI ) och ett serverscript ( server ). Detta exempel visar hur du kan skriva ut "Hej värld" från UI eller från server.

UI.R

I användargränssnittet kan du placera vissa visningsobjekt (div, ingångar, knappar, etc).

library(shiny)

# Define UI for application print "Hello world" 
shinyUI(

  # Create bootstrap page 
  fluidPage(
    
    # Paragraph "Hello world"
    p("Hello world"),

    # Create button to print "Hello world" from server
    actionButton(inputId = "Print_Hello", label = "Print_Hello World"),

    # Create position for server side text
    textOutput("Server_Hello")
    
  )
)
 

Server.R

I serverskriptet kan du definiera metoder som manipulerar data eller lyssnar på handlingar.

# Define server logic required to print "Hello World" when button is clicked
shinyServer(function(input, output) {
  
  # Create action when actionButton is clicked
  observeEvent(input$Print_Hello,{

    # Change text of Server_Hello
    output$Server_Hello = renderText("Hello world from server side")
  })
  
  
})
 

Hur springer jag?

Du kan köra din app på flera sätt:

  1. Skapa två olika filer och placera dem i en katalog, använd sedan runApp('your dir path')
  2. Du kan definiera två variabler (till exempel ui och server) och sedan använda shinyApp(ui,server) att köra din app

Resultat

I det här exemplet ser du lite text och en knapp:

skärmdump före klick

Och efter knappen klickar servern:

skärmdump efter klick

När skulle jag använda glänsande?

  1. Jag har gjort en viss dataanalys på vissa data och har många "icke-kodande" personer i teamet, som har liknande data som mina, och har liknande analyskrav. I sådana fall kan jag bygga en webbapplikation med glänsande, som tar in användarspecifika inputdatafiler och generera analyser.
  2. Jag måste dela analyserade data eller relevanta tomter med andra i teamet. Glänsande webbappar kan vara användbara i sådana situationer.
  3. Jag har ingen betydande erfarenhet av webbapplikationsprogrammering, men behöver snabbt montera ett enkelt gränssnitt. Glänsande för att rädda med enkla användargränssnitt och serverelement och minsta kodning.
  4. Interaktiva element tillåter dina användare att utforska vilken del av informationen som är relevant för dem. Du kan till exempel ha data för hela företaget laddat, men ha en nedrullning per avdelning som "Försäljning", "Produktion", "Ekonomi" som kan sammanfatta data på det sätt som användarna vill se det. Alternativet skulle vara att producera ett stort rapportpaket med analyser för varje avdelning, men de läser bara sitt kapitel och det totala.