MulaiMulai sekarang secara gratis

Menyesuaikan kurva halus: masukan kotak centang

Berbeda dengan masukan teks dan numerik, masukan kotak centang terbatas pada dua nilai saja: TRUE atau FALSE. Ketika pengguna mencentang masukan kotak centang, nilainya menjadi TRUE, dan jika tidak dicentang maka nilainya FALSE.

Perhatikan bahwa parameter value dari fungsi checkboxInput(), yang menentukan nilai awal, hanya dapat diatur ke TRUE atau FALSE.

Kode untuk aplikasi Shiny dari latihan sebelumnya disediakan dengan beberapa modifikasi. Objek plot ggplot di dalam renderPlot() kini ditetapkan ke variabel p.

Latihan ini adalah bagian dari kursus

Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Lihat Kursus

Petunjuk latihan

Tugas Anda adalah menambahkan masukan kotak centang yang, ketika dicentang, akan menambahkan garis kecocokan terbaik pada plot. Secara khusus:

  • Tambahkan masukan kotak centang pada UI dengan ID "fit", label "Add line of best fit", dan keadaan awal tidak dicentang.
  • Tambahkan kode pada server sehingga ketika masukan dicentang, sebuah garis kecocokan terbaik ditambahkan ke plot. Kode untuk menambahkan garis kecocokan terbaik sudah disediakan (baris 26).

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Define UI for the application
ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput("title", "Title", "GDP vs life exp"),
      numericInput("size", "Point size", 1, 1),
      # Add a checkbox for line of best fit
      ___
    ),
    mainPanel(
      plotOutput("plot")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    p <- ggplot(gapminder, aes(gdpPercap, lifeExp)) +
      geom_point(size = input$size) +
      scale_x_log10() +
      ggtitle(input$title)
    
    # When the "fit" checkbox is checked, add a line
    # of best fit
    if (___) {
      p <- p + geom_smooth(method = "lm")
    }
    p
  })
}

# Run the application
shinyApp(ui = ui, server = server)
Edit dan Jalankan Kode