MulaiMulai sekarang secara gratis

Membangun objek output

Ada tiga aturan untuk membangun output di Shiny:

  1. Bangun objek dengan fungsi render*() yang sesuai.

  2. Simpan hasil dari fungsi render ke dalam daftar output, yang merupakan parameter dari fungsi server. Secara spesifik, simpan ke output$<outputId> untuk menggantikan placeholder output di UI yang memiliki ID outputId.

  3. Jika output bergantung pada nilai input yang diubah pengguna, Anda dapat mengakses input apa pun menggunakan parameter input dari fungsi server. Secara spesifik, input$<inputId> akan selalu mengembalikan nilai terkini dari kolom input yang memiliki ID inputId.

Latihan ini adalah bagian dari kursus

Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Lihat Kursus

Petunjuk latihan

Anda diberikan sebuah aplikasi Shiny dengan bagian UI yang sudah berfungsi penuh. Tugas Anda adalah membangun semua output. Secara khusus:

  • Buat plot dari himpunan data cars pada placeholder output plot dengan ID "cars_plot" (baris 23).
  • Pada output teks "greeting", render salam teks dalam bentuk "Hello NAME", di mana NAME adalah nilai dari input name (baris 28).
  • Pada output "iris_table", tampilkan tabel dari n baris pertama himpunan data iris, di mana n adalah nilai dari input numerik (baris 33).

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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)
Edit dan Jalankan Kode