เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเพิ่มโครงสร้างให้กับแอป

Layout ใน Shiny ช่วยจัดโครงสร้างแอปโดยวางองค์ประกอบต่าง ๆ ไว้ในตำแหน่งที่ต้องการ

Sidebar layout สร้างขึ้นด้วยฟังก์ชัน sidebarLayout() ซึ่งให้โครงสร้างแบบสองคอลัมน์พื้นฐาน โดยมี sidebar ขนาดเล็กอยู่ทางซ้าย และ main panel ขนาดใหญ่อยู่ทางขวา

ฟังก์ชัน sidebar layout รับ argument สองตัว ได้แก่ sidebarPanel() และ mainPanel() แต่ละ panel สามารถบรรจุองค์ประกอบ text หรือ HTML ผสมกันได้อย่างอิสระ คล้ายกับการผสมองค์ประกอบเหล่านี้ภายใน fluidPage()

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

กรณีศึกษา: การสร้างเว็บแอปพลิเคชันด้วย Shiny ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

ให้เพิ่ม sidebar layout ลงในแอปที่มีอยู่ เพื่อให้ input อยู่ทางด้านซ้าย และ output อยู่ใน main panel โดยมีขั้นตอนดังนี้

  • กำหนด UI ของแอปพลิเคชัน Shiny
  • เพิ่ม sidebar layout ลงในหน้า
  • เพิ่ม sidebar panel เข้าไปใน layout แล้ววาง input และข้อความไว้ในนั้น
  • เพิ่ม main panel เข้าไปใน layout แล้ววาง plot และตารางไว้ในนั้น

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Load the shiny package
library(shiny)

# Define UI for the application
ui <- ___(
  # Add a sidebar layout to the application
  ___(
    # Add a sidebar panel around the text and inputs
    ___(
      h4("Plot parameters"),
      textInput("title", "Plot title", "Car speed vs distance to stop"),
      numericInput("num", "Number of cars to show", 30, 1, nrow(cars)),
      sliderInput("size", "Point size", 1, 5, 2, 0.5)
    ),
    # Add a main panel around the plot and table
    ___(
      plotOutput("plot"),
      tableOutput("table")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    plot(cars[1:input$num, ], main = input$title, cex = input$size)
  })
  output$table <- renderTable({
    cars[1:input$num, ]
  })
}

# Run the application
shinyApp(ui = ui, server = server)
แก้ไขและรันโค้ด