1  第一部分:快速入門

本部分預計時間:40 分鐘

如果你已經有基礎,可以直接複製這段給 AI,一次完成本章所有內容:

我完全沒學過 R 語言,請幫我完成以下任務:

  1. 給我一段最簡單的 R 程式碼,畫出一個有 5 根柱子的長條圖,高度分別是 10、25、15、30、20,用內建套件即可
  2. 用「教小學生」的方式解釋這段程式碼,什麼是變數、函數、參數
  3. 解釋 R 的「套件」是什麼(用手機 App 比喻),以及 library() 在做什麼
  4. 給我用 pak 安裝以下套件的程式碼:ggplot2、dplyr、gtsummary、skimr、ggsci、patchwork,安裝完後怎麼載入

每一步都給我可以直接複製貼上執行的程式碼,並加上中文註解。

1.1 環境設定

在開始之前,請選擇你的開發環境:

Tip選擇你的路線

路線 A — 最簡單(推薦初學者): 使用 Posit.cloud,完全不需安裝任何軟體,打開瀏覽器即可開始。

路線 B — 本機安裝: 安裝以下工具:

1.2 這堂課的玩法

  1. 我給你一個「任務」
  2. 你把任務描述貼給 AI(ChatGPT / Claude / Gemini)
  3. AI 給你程式碼
  4. 你貼到 Posit.cloud / Positron 執行
  5. 我們一起看結果、理解發生了什麼

你的工作是「問對問題」,不是「寫對程式」。

1.3 任務 1:你的第一個程式

📋 複製這段話,貼給 AI:

我完全沒學過 R 語言。請給我一段最簡單的 R 程式碼,用內建的套件,讓我可以畫出一個有 5 根柱子的長條圖,每根柱子的高度分別是 10、25、15、30、20。請給我可以直接複製貼上執行的程式碼。請用英文標示所有 label。

範例程式碼

Note

下面的程式碼是一種可能的答案。你的 AI 可能會給你不同的版本 — 這完全正常!只要你看到一張長條圖,就算成功。

# 建立資料
heights <- c(10, 25, 15, 30, 20)
categories <- c("A", "B", "C", "D", "E")

# 畫長條圖(字型已由 _common.R 全域設定)
par(family = "noto-sans-tc")
barplot(
  heights,
  names.arg = categories,
  main = "我的第一個 R 圖表",
  xlab = "類別",
  ylab = "高度",
  col = "steelblue"
)

⏱️ 3 分鐘後,你應該會看到一張圖。

1.4 任務 2:發生了什麼事?

📋 複製這段話,貼給 AI:

請用「教小學生」的方式,解釋你剛剛給我的那段 R 程式碼。每一行在做什麼?什麼是「變數」?什麼是「函數」?

1.4.1 程式碼解釋

  • 變數:就像一個盒子,可以裝東西。heights 裝了 5 個數字。
  • 函數:就像一個機器,你給它材料,它產出結果。barplot() 就是畫圖的機器。
  • 參數:就像機器的設定,告訴機器怎麼運作。

1.5 任務 3:當程式出錯時

📋 如果剛剛有錯誤訊息,複製錯誤訊息,加上這段話貼給 AI:

我在 R 裡面執行你給的程式碼,出現這個錯誤: 【貼上錯誤訊息】 請告訴我這是什麼意思,以及怎麼修正。

1.5.1 常見錯誤範例

# 這會產生錯誤(故意的)
barplot(height) # 變數名稱打錯了

🎯 記住:錯誤訊息是線索,不是你的錯。

1.6 任務 4:認識套件

📋 複製這段話,貼給 AI:

R 語言裡面的「套件」(package) 是什麼?可以用「手機 App」來比喻嗎?另外,library() 這個指令是在做什麼?

1.6.1 套件說明

  • 套件 = 手機 App:提供額外功能
  • 安裝套件 = 下載 Appinstall.packages("套件名稱")
  • 載入套件 = 開啟 Applibrary(套件名稱)

1.7 任務 5:安裝我們需要的工具

📋 複製這段話,貼給 AI:

我要在 R 裡面使用 ggplot2、dplyr、gtsummary、skimr、ggsci 這些套件。請給我安裝這些套件的程式碼,以及安裝完之後怎麼載入它們。先裝 pak 這個套件,之後用它來安裝其他套件。

1.7.1 安裝與載入套件

Warning課堂安裝太慢?

如果現場安裝太慢,請使用 Posit.cloud(大多數套件已預裝),或在上課前執行 source("install.r") 預先安裝。

只裝課程前半段(Part 1-4)需要的套件,其餘稍後再裝:

# 先安裝 pak(更快的套件管理器,支援平行下載)
install.packages("pak")

# 課程核心套件(約 2 分鐘)
pak::pak(c(
  "ggplot2",       # 畫圖
  "dplyr",         # 資料處理
  "gtsummary",     # Table 1
  "skimr",         # 資料摘要
  "ggsci",         # 期刊配色
  "patchwork"      # 多圖組合
))

一次裝好所有套件。建議在上課前一天跑完

# 先安裝 pak(更快的套件管理器,支援平行下載)
install.packages("pak")

# 或直接執行: source("install.r")
pak::pak(c(
  # === 核心(Part 1-4)===
  "ggplot2",       # 畫圖
  "dplyr",         # 資料處理
  "gtsummary",     # Table 1
  "skimr",         # 資料摘要
  "ggsci",         # 期刊配色(JAMA 等)
  "patchwork",     # 多圖組合

  # === 中文字型 ===
  "showtext",      # 中文字型渲染
  "sysfonts",      # 字型管理

  # === 統計檢定(Part 5)===
  "broom",         # 整理統計結果
  "effsize",       # 效應量(Cohen's d)
  "car",           # Levene's test(⚠️ 安裝較慢,會拉 lme4)
  "survival",      # 存活分析
  "ggsurvfit",     # 存活曲線

  # === 匯出(Part 6)===
  "flextable",     # 表格格式化
  "officer",       # Word / PPT 匯出
  "report",        # 文字報告
  "svglite",       # SVG 向量圖

  # === 圖形裝置 ===
  "ragg"           # 高品質 PNG(⚠️ 需編譯,可跳過)
))
# 載入套件(每次使用前都要執行)
library(ggplot2)
library(dplyr)
library(gtsummary)
library(skimr)

# 載入中文字型(本專案已在 _common.R 統一設定)
# 如需手動設定,可使用:
# library(showtext)
# library(sysfonts)
# font_add_google("Noto Sans TC", "noto-sans-tc")
# showtext_auto()

⏱️ 快速版約 2 分鐘,完整版約 5-8 分鐘。

  • Mac 出現 Xcode 錯誤:在終端機執行 xcode-select --install
  • car 安裝超過 3 分鐘:正常,它會編譯 lme4 的 C++ 程式碼。可先跳過,Part 5 才需要
  • ragg 安裝失敗:可跳過。改用預設的 PNG 裝置(圖片品質稍低但功能相同)
  • Posit.cloud 上安裝失敗:大多數套件已預裝,試試直接 library(套件名) 看看

1.8 支線任務:環境管理

📋 複製這段話,貼給 AI:

有人要我在 R 裡面使用 renv 套件?他有何居心?

1.8.1 說明

renv1 是 R 的套件版本管理工具,可以:

  • 記錄專案使用的套件版本
  • 確保分析結果的可重現性
  • 讓其他人能復現相同的環境

1.9 小技巧:先請 AI 學一下套件怎麼用

在使用新套件之前,可以請 AI 先查閱官方文件:

  • CRAN (cran.r-project.org): R 套件官方總倉庫
  • Bioconductor (bioconductor.org): 生物資訊學專用套件庫
  • Tidyverse (tidyverse.org): 資料科學核心套件群
  • rOpenSci (ropensci.org): 經同儕審查的科學研究套件
  • R-universe (r-universe.dev): 新一代套件搜尋整合平台

📋 複製這段話,貼給 AI(把 [套件名稱] 換成你要用的套件):

請先查閱 [套件名稱] 的官方文件(CRAN 頁面),瞭解一下這個套件的主要功能和用法,然後用簡單的例子教我怎麼使用。

1.
Ushey K, Wickham H. Renv: Project Environments.; 2024. https://CRAN.R-project.org/package=renv