Shiny 初探

🌟 Shiny 是什麼?

Shiny 是 R 語言的套件之一,由 RStudio 開發,它讓你能夠用 純 R 語法 製作出互動式的網頁應用程式。
適合用來製作 資料分析儀表板(dashboard)互動表單即時圖表統計工具 等應用。

💡 為什麼用 Shiny?

優點 說明
✅ 不用學 JavaScript 或 HTML 用 R 就能打造前端與後端互動系統
✅ 與資料分析無縫整合 可直接讀取 R 內的資料框、ggplot、模型等
✅ 支援多種輸出格式 可以產生 PDF、Word、Excel 等報表
✅ 可結合 MySQL、Google Sheets 可以當作資料庫操作工具或表單系統
✅ 可本機執行或部署到雲端 部署到 shinyapps.io 或自行架設 Shiny Server

🖥️ 基本架構:Shiny 有三個部分

# 1. UI:使用者介面 
ui <- fluidPage(   titlePanel("Hello Shiny"),   sliderInput("num", "請選一個數字", min = 1, max = 100, value = 50),   plotOutput("histPlot") )  
# 2. Server:邏輯處理 
server <- function(input, output, session) {   output$histPlot <- renderPlot({     hist(rnorm(input$num))  # 使用滑桿控制亂數數量   }) }  
# 3. 啟動 App shinyApp(ui, server) 

執行後會開啟一個互動網頁,有滑桿與直方圖。

🔧 常見元件(UI)

元件 用途
textInput() 輸入文字
numericInput() 輸入數字
selectInput() 下拉選單
checkboxInput() 勾選框
radioButtons() 單選選項
fileInput() 上傳檔案
dataTableOutput() 顯示可互動的表格

📦 延伸功能

套件 用途
shinydashboard 製作像網站的儀表板頁面
DT 顯示可互動篩選的表格
shinyWidgets 美化介面、進階輸入元件
shinyjs 增強前端互動(顯示/隱藏)
shinyFiles 讓使用者選取本機檔案

📦 Shiny 可以做什麼?

  • 📊 統計分析工具:互動式描述統計、交叉分析、模型預測

  • 📝 表單系統:問卷填寫、加班申請、請假系統

  • 📈 動態報表:根據資料輸入即時產出圖表與分析結果

  • 👥 多角色介面:社工、督導、主管使用不同功能

  • 💾 結合資料庫:可與 MySQL、Google Sheets、SQLite 整合