Inputs และ Outputs

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

Dean Attali

Shiny Consultant

Inputs

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

Inputs

chapter1_2_inputs_and_outputs.005.png

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

Inputs

chapter1_2_inputs_and_outputs.006.png

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

การสร้าง Inputs

ui <- fluidPage(
    textInput(inputId = "name", label = "Enter your name",
              value = "Dean"),
    numericInput(inputId = "sibs", label = "How many siblings?",
                 value = 4, min = 0)
)
  • ฟังก์ชัน Input: *Input(inputId, label, ...)
  • inputId = ID ที่ไม่ซ้ำกัน
  • label = ข้อความอธิบาย input
  • ... = พารามิเตอร์เพิ่มเติมเฉพาะ input
กรณีศึกษา: การสร้างเว็บแอปพลิเคชันด้วย Shiny ใน R

Outputs

  • กราฟ, ตาราง, ข้อความ — ทุกสิ่งที่ R สร้างและผู้ใช้มองเห็น
  • 2 ขั้นตอน:

    1. สร้าง placeholder สำหรับ output (ใน UI)

      ui <- fluidPage(
       "Plot goes here:",
       plotOutput(outputId = "my_plot")
      )
      
    2. เขียนโค้ด R เพื่อสร้าง output (ใน server)

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

Server

server <- function(input, output) {

  # Code for building outputs

}
  • input
    • อ่านค่าจากที่นี่ (input ที่ผู้ใช้แก้ไข)
  • output
    • เขียนค่าลงที่นี่ (output เช่น กราฟ, ตาราง)
กรณีศึกษา: การสร้างเว็บแอปพลิเคชันด้วย Shiny ใน R

การสร้าง Outputs

ui <- fluidPage(
    numericInput("num", "Number of rows", value = 10, min = 0),
    tableOutput("my_table")
)

server <- function(input, output) { output$my_table <- renderTable({ head(iris, n = input$num) }) }
  • 3 กฎในการสร้าง output object:
    1. สร้าง object ภายใน render function (renderPlot(), renderText() เป็นต้น)
    2. บันทึก object ลงใน output$<outputId>
    3. ใช้ input$<inputId> เพื่อเข้าถึงค่าของ input
กรณีศึกษา: การสร้างเว็บแอปพลิเคชันด้วย Shiny ใน R

มาฝึกกันเถอะ!

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

Preparing Video For Download...