Skip to content
Siamcoder

การเชื่อมต่อข้อมูลกับ RShiny

rshiny1 min read

การเชื่อมต่อข้อมูลกับ RShiny เป็นสิ่งสำคัญในการสร้างแอปพลิเคชันที่มีประสิทธิภาพและสามารถแสดงผลข้อมูลได้อย่างถูกต้อง ในบทความนี้เราจะสำรวจวิธีการเชื่อมต่อข้อมูลกับ RShiny และนำมาแสดงผลในแอปพลิเคชัน

ตัวอย่างการเชื่อมต่อข้อมูลกับ RShiny:

library(shiny)
library(ggplot2)
# อ่านข้อมูลจากไฟล์ CSV
data <- read.csv("data.csv")
# กำหนด UI
ui <- fluidPage(
# ส่วนหัวของแอปพลิเคชัน
headerPanel("การเชื่อมต่อข้อมูลกับ RShiny"),
# ส่วนเนื้อหาของแอปพลิเคชัน
mainPanel(
# ส่วนแสดงผลลัพธ์
plotOutput("plot")
)
)
# กำหนด Server
server <- function(input, output) {
# ส่วนคำนวณและแสดงผล
output$plot <- renderPlot({
# สร้างกราฟโดยใช้ข้อมูลที่เชื่อมต่อ
ggplot(data, aes(x = variable1, y = variable2)) +
geom_point()
})
}
# เรียกใช้งานแอปพลิเคชัน
shinyApp(ui = ui, server = server)`

ในตัวอย่างนี้ เราใช้ฟังก์ชัน read.csv เพื่ออ่านข้อมูลจากไฟล์ CSV และเก็บข้อมูลในตัวแปร data ซึ่งจะใช้ในการสร้างกราฟ

ในส่วนของ UI เรากำหนดให้แสดงผลกราฟโดยใช้ plotOutput ในส่วนของ Server เราใช้ฟังก์ชัน renderPlot เพื่อสร้างและแสดงผลกราฟ ในตัวอย่างนี้เราใช้ ggplot2 ในการสร้างกราฟและใช้ข้อมูลจากตัวแปร data

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

ในการเชื่อมต่อข้อมูลกับ RShiny เราไม่จำกัดเฉพาะการอ่านข้อมูลจากไฟล์ CSV เท่านั้น ยังมีวิธีการเชื่อมต่อกับแหล่งข้อมูลอื่น ๆ ได้อีกมากมาย เช่น ฐานข้อมูล MySQL, PostgreSQL, API ข้อมูลออนไลน์ เป็นต้น ตัวอย่างเช่น:

library(shiny)
library(DBI)
library(RPostgreSQL)
# เชื่อมต่อกับฐานข้อมูล PostgreSQL
con <- dbConnect(PostgreSQL(),
user = "username",
password = "password",
host = "localhost",
dbname = "database\_name")
# อ่านข้อมูลจากฐานข้อมูล
query <- "SELECT \* FROM table\_name"
data <- dbGetQuery(con, query)
# กำหนด UI
ui <- fluidPage(
# ส่วนหัวของแอปพลิเคชัน
headerPanel("การเชื่อมต่อข้อมูลกับ RShiny"),
# ส่วนเนื้อหาของแอปพลิเคชัน
mainPanel(
# ส่วนแสดงผลลัพธ์
dataTableOutput("table")
)
)
# กำหนด Server
server <- function(input, output) {
# ส่วนคำนวณและแสดงผล
output$table <- renderDataTable({
# แสดงตารางข้อมูล
datatable(data)
})
}
# เรียกใช้งานแอปพลิเคชัน
shinyApp(ui = ui, server = server)`

ในตัวอย่างนี้ เราใช้ฟังก์ชัน dbConnect เพื่อเชื่อมต่อกับฐานข้อมูล PostgreSQL โดยระบุพารามิเตอร์เช่น user, password, host, dbname ให้ถูกต้องตามการกำหนดของฐานข้อมูลของคุณ

เราใช้ฟังก์ชัน dbGetQuery เพื่ออ่านข้อมูลจากฐานข้อมูลโดยระบุคำสั่ง SQL ในตัวอย่างนี้เราใช้คำสั่ง SELECT * FROM table_name เพื่อเลือกข้อมูลทั้งหมดจากตาราง table_name

ในส่วนของ UI เรากำหนดให้แสดงผลในรูปแบบตารางโดยใช้ dataTableOutput ในส่วนของ Server เราใช้ฟังก์ชัน renderDataTable เพื่อแสดงผลข้อมูลในรูปแบบตาราง ในตัวอย่างนี้เราใช้ DT package ในการแสดงผลข้อมูลในรูปแบบตาราง

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