Skip to content
Siamcoder

การสร้างแอปพลิเคชัน RShiny

rshiny1 min read

การพัฒนาแอปพลิเคชัน RShiny เป็นกระบวนการสร้างแอปพลิเคชันที่ใช้ภาษา R และชุดเครื่องมือ RShiny เพื่อสร้างแอปพลิเคชันที่มีตัวอินเทอร์แอคทีฟใช้งานง่ายและสวยงาม แอปพลิเคชัน RShiny ใช้ได้ในหลายสาขาวิชาที่ต้องการการแสดงผลข้อมูลอย่างสร้างสรรค์ ตั้งแต่การวิเคราะห์ข้อมูล, การสร้างกราฟ, การสร้างแบบฟอร์ม, การจัดการข้อมูล และอื่น ๆ

ด้านล่างนี้เป็นตัวอย่างของการพัฒนาแอปพลิเคชัน RShiny:

# โค้ดตัวอย่างสร้างแอปพลิเคชัน RShiny
library(shiny)
# กำหนด UI
ui <- fluidPage(
# ส่วนหัวของแอปพลิเคชัน
headerPanel("ตัวอย่างแอปพลิเคชัน RShiny"),
# ส่วนเนื้อหาของแอปพลิเคชัน
mainPanel(
h3("ยินดีต้อนรับสู่แอปพลิเคชัน RShiny!"),
p("นี่คือตัวอย่างแอปพลิเคชัน RShiny ที่ใช้งานง่าย")
)
)
# กำหนด Server
server <- function(input, output) {
# ไม่มีการดำเนินการใด ๆ ในส่วน Server
}
# เรียกใช้งานแอปพลิเคชัน
shinyApp(ui = ui, server = server)`

ในตัวอย่างนี้เราใช้ฟังก์ชัน fluidPage เพื่อกำหนดหน้าต่างแอปพลิเคชัน และใช้ฟังก์ชัน headerPanel เพื่อกำหนดส่วนหัวของแอปพลิเคชัน ในส่วนของเนื้อหาของแอปพลิเคชัน เราใช้ฟังก์ชัน mainPanel เพื่อกำหนดเนื้อหาที่จะแสดงในแอปพลิเคชัน ในตัวอย่างนี้เราใส่ข้อความ "ยินดีต้อนรับสู่แอปพลิเคชัน RShiny!" และ "นี่คือตัวอย่างแอปพลิเคชัน RShiny ที่ใช้งานง่าย" ในส่วน Server เราไม่มีการดำเนินการใด ๆ ในตัวอย่างนี้

โดยเมื่อทำการรันโค้ดด้านบน แอปพลิเคชัน RShiny จะถูกสร้างขึ้นและแสดงผลบนหน้าเว็บเบราว์เซอร์ ผู้ใช้งานจะเห็นหน้าต่างแอปพลิเคชันที่มีส่วนหัว "ตัวอย่างแอปพลิเคชัน RShiny" และเนื้อหาที่มีข้อความ "ยินดีต้อนรับสู่แอปพลิเคชัน RShiny!" และ "นี่คือตัวอย่างแอปพลิเคชัน RShiny ที่ใช้งานง่าย"

เพื่อพัฒนาแอปพลิเคชัน RShiny ที่มีความสมบูรณ์และมีประสิทธิภาพมากยิ่งขึ้น คุณสามารถเพิ่มฟีเจอร์ต่าง ๆ เข้าไปในแอปพลิเคชันของคุณได้ ตัวอย่างเช่นการเพิ่มกราฟ, แบบฟอร์ม, ตารางข้อมูล และฟังก์ชันอื่น ๆ เพื่อให้แอปพลิเคชันของคุณมีความสมบูรณ์และมีประสิทธิภาพมากยิ่งขึ้น

ตัวอย่างการเพิ่มฟีเจอร์ในแอปพลิเคชัน RShiny:

library(shiny)
ui <- fluidPage(
headerPanel("ตัวอย่างแอปพลิเคชัน RShiny"),
sidebarLayout(
sidebarPanel(
# เพิ่มแบบฟอร์มสำหรับกรอกข้อมูล
textInput("name", "ชื่อ:", value = ""),
numericInput("age", "อายุ:", value = NULL),
actionButton("submit", "ส่งข้อมูล")
),
mainPanel(
# เพิ่มกราฟแสดงผล
plotOutput("plot"),
# เพิ่มตารางแสดงผล
dataTableOutput("table")
)
)
)
server <- function(input, output) {
# สร้างกราฟเมื่อกดปุ่มส่งข้อมูล
observeEvent(input$submit, {
plot_data <- data.frame(
Name = input$name,
Age = input$age
)
output$plot <- renderPlot({
barplot(plot_data$Age, names.arg = plot_data$Name,
xlab = "ชื่อ", ylab = "อายุ", main = "กราฟแสดงอายุ")
})
})
# แสดงตารางเมื่อมีข้อมูล
output$table <- renderDataTable({
if (!is.null(input$name) & !is.null(input$age)) {
data.frame(
Name = input$name,
Age = input$age
)
}
})
}
shinyApp(ui = ui, server = server)`

ในตัวอย่างนี้เราได้เพิ่มฟีเจอร์ในแอปพลิเคชัน RShiny โดยใช้ฟังก์ชัน sidebarLayout เพื่อแบ่งหน้าต่างเป็นสองส่วน ส่วน sidebarPanel เราได้เพิ่มแบบฟอร์มที่ประกอบด้วยช่องให้กรอกชื่อและอายุ และปุ่ม "ส่งข้อมูล" เพื่อส่งข้อมูลจากแบบฟอร์ม ในส่วน mainPanel เราได้เพิ่มกราฟแสดงผลให้แสดงกราฟแท่งของอายุ และตารางแสดงผลข้อมูลที่ผู้ใช้กรอกในแบบฟอร์ม

เมื่อรันโค้ดด้านบน แอปพลิเคชัน RShiny จะถูกสร้างขึ้นและแสดงผลบนหน้าเว็บเบราว์เซอร์ ผู้ใช้งานจะเห็นหน้าต่างแอปพลิเคชันที่มีส่วนหัว "ตัวอย่างแอปพลิเคชัน RShiny" และส่วน sidebarPanel ที่มีแบบฟอร์มสำหรับกรอกข้อมูลชื่อและอายุ และปุ่ม "ส่งข้อมูล" เมื่อผู้ใช้งานกรอกข้อมูลและกดปุ่ม "ส่งข้อมูล" แอปพลิเคชันจะสร้างกราฟแสดงผลอายุแบบแท่งและแสดงตารางข้อมูลที่ผู้ใช้กรอกในแบบฟอร์ม