Word (.docx) 非資料交換格式,**請勿直接讀取**。在 Word 中另存為 純文字 (.txt) 或 CSV (.csv),再用 R 讀取。
檔案 → 另存為 → 純文字 (*.txt) 或 CSV (逗號分隔) (*.csv)。# CSV (推薦)
df <- read.csv("data.csv", header = TRUE, encoding = "UTF-8", stringsAsFactors = FALSE)
# TXT (固定寬度/分隔符)
df <- read.table("data.txt", header = TRUE, sep = "\t", encoding = "UTF-8", stringsAsFactors = FALSE)
| 現象 | 原因 | 解法 |
|---|---|---|
| 中文顯示 <U+XXXX> 或 亂碼 | 檔案編碼非 UTF-8 (如 Big5/GBK),R 預設 locale 讀錯 | 存檔時指定 UTF-8,或 R 讀取加 encoding="UTF-8" (R 4.0+ 預設 UTF-8) |
| 欄位合併/欄位數不符 | Word 表格合併儲存格、含逗號/換行 | 手動清理 CSV,或用 readxl::read_excel 直接讀 .xlsx (需另存為 Excel) |
| 數字變科學記號/日期變數字 | R 自動型別推論 | 指定 colClasses 或用 readr::read_csv (型別更穩) |
# 需安裝 docxtractr / officer
library(docxtractr)
tbl <- docx_extract_all_tbls("file.docx") # 回傳 list of data.frames
適合一次性匯入,不適合自動化管線。
Word 表格 → **另存為 UTF-8 CSV** → read.csv(..., encoding="UTF-8")。這是最穩健、可重現、跨平台的工作流。