Zacznij terazZacznij za darmo

Tworzenie obiektów wyjściowych

Budowanie danych wyjściowych w Shiny opiera się na trzech zasadach:

  1. Utwórz obiekt za pomocą odpowiedniej funkcji render*().

  2. Zapisz wynik funkcji renderującej na liście output, która jest parametrem funkcji serwera. Konkretnie – zapisz go do output$<outputId>, aby zastąpić placeholder wyjściowy w UI o identyfikatorze outputId.

  3. Jeśli dane wyjściowe zależą od wartości zmodyfikowanych przez użytkownika, możesz uzyskać do nich dostęp za pomocą parametru input funkcji serwera. Wywołanie input$<inputId> zawsze zwraca bieżącą wartość pola wejściowego o identyfikatorze inputId.

To ćwiczenie jest częścią kursu

Studia przypadków: tworzenie aplikacji webowych w Shiny w R

Zobacz kurs

Instrukcje do ćwiczenia

Otrzymujesz aplikację Shiny z w pełni działającą częścią UI. Twoim zadaniem jest zbudowanie wszystkich obiektów wyjściowych. Konkretnie:

  • Utwórz wykres ze zbioru danych cars w placeholderze wyjściowym z identyfikatorem "cars_plot" (linia 23).
  • W wyjściu tekstowym "greeting" wyrenderuj tekst powitalny w postaci "Hello NAME", gdzie NAME to wartość pola wejściowego name (linia 28).
  • W wyjściu "iris_table" wyświetl tabelę zawierającą pierwsze n wierszy zbioru danych iris, gdzie n to wartość pola wejściowego numerycznego (linia 33).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Load the shiny package
library(shiny)

# Define UI for the application
ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput("name", "What is your name?", "Dean"),
      numericInput("num", "Number of flowers to show data for",
                   10, 1, nrow(iris))
    ),
    mainPanel(
      textOutput("greeting"),
      plotOutput("cars_plot"),
      tableOutput("iris_table")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  # Create a plot of the "cars" dataset 
  output$cars_plot <- render___({
    plot(cars)
  })
  
  # Render a text greeting as "Hello "
  output$greeting <- ___({
    paste("Hello", ___)
  })
  
  # Show a table of the first n rows of the "iris" data
  ___ <- ___({
    data <- iris[1:input$num, ]
    data
  })
}

# Run the application
shinyApp(ui = ui, server = server)
Edytuj i uruchom kod