🫶🏻 U1FAF6-project
  • Welcome to 🫶🏻 U1FAF6-project!
  • 一種半自動的最小可行寫作方案
  • 20250214 ch2
  • 20250214 ch3
  • Weekly Chellange
  • R Performance Benchmark Results
  • 關於 COLAB 使用的小技巧
    • COLAB 已經安裝好許多套件
      • 📊 資料科學核心套件
      • 🧠 統計分析與心理計量
      • 🔧 程式開發與效能
    • COLAB 套件安裝方法
      • Problem.
      • Solution.
    • 資料檔讀取可以用 dropbox 連結
      • Problem.
      • Solution.
      • Discussion (Claude)
        • 🗂️ Dropbox 連結轉換
        • 🌐 其他雲端儲存服務
        • 🔍 通用原則
        • ⚠️ 注意事項
        • 🎯 最佳實踐
    • COLAB 畫圖小技巧
      • Problem.
      • Solution.
    • APT 也要更新 2025-08-25
      • Problem.
      • Solution.
  • 教育測量學期刊觀察清單
  • 20260313 DINA pymc
  • 20260313 r gdina
  • 長格式 (lme4) 和寬格式 (lavaan) 的估計是相同的
🫶🏻 U1FAF6-project
  • 關於 COLAB 使用的小技巧

關於 COLAB 使用的小技巧¶

  • JW
  • 2025-09-02

COLAB 已經安裝好許多套件¶

可以使用 installed.packages() 查詢。

以下我只列出我有在關注的

📊 資料科學核心套件¶

Tidyverse 生態系

  • tidyverse - 資料科學核心套件集合
  • dplyr - 資料操作和轉換
  • tidyr - 資料整理和重塑
  • ggplot2 - 資料視覺化
  • readr - 讀取各種格式檔案
  • purrr - 函數式程式設計
  • tibble - 現代化資料框
  • stringr - 字串處理
  • forcats - 因子變數處理
  • lubridate - 日期時間處理

資料讀取與匯出

  • haven - 讀取 SPSS, SAS, Stata 檔案
  • readxl - 讀取 Excel 檔案
  • dbplyr - 資料庫查詢
  • jsonlite - JSON 資料處理

資料視覺化

  • ggplot2 - 主要繪圖套件
  • lattice - 傳統統計繪圖
🧠 統計分析與心理計量¶
  • boot - Bootstrap 重抽樣
  • MASS - 現代應用統計
  • survival - 存活分析
  • mgcv - 廣義相加模型
  • nlme - 非線性混合效應模型
  • broom - 整理統計模型輸出
🔧 程式開發與效能¶
  • Rcpp - C++ 整合
  • data.table - 高效能資料處理
  • Matrix - 稀疏矩陣運算
  • devtools - 套件開發工具
  • usethis - 專案設定工具
  • testthat - 單元測試
  • roxygen2 - 文檔產生
In [10]:
Copied!
library(tidyverse)
library(lattice)
library(haven)
library(tidyverse) library(lattice) library(haven)

COLAB 套件安裝方法¶

Problem.¶

傳統上 R 的套件安裝方法是 install.packages(),但你會發現,在 Colab 上這樣安裝套件會非常慢。

Solution.¶

COLAB 由於是建立在 UBUNTU 環境上,因此可以適用更快的安裝方法。那就是用 APT 套件。

例如(好像不用 sudo 也行)。

system("sudo apt install r-cran-sjlabelled")
system("sudo apt install r-cran-lavaan")
system("sudo apt install r-cran-psych")
In [ ]:
Copied!

資料檔讀取可以用 dropbox 連結¶

Problem.¶

之前我都是把 csv 檔拉到左邊的 FILE 區,然後讀取。

Solution.¶

但我發現 dropbox 連結居然也可以!但是需要小修改。需要把 0 改為 1.

例如:原本的分享連結 https://www.dropbox.com/scl/fi/p5fz99jarbidzrejixrbm/data1.sav?rlkey=qaco6jhkl7ifksp1woe1n6zoc&st=odp5oi9j&dl=0

改成 https://www.dropbox.com/scl/fi/p5fz99jarbidzrejixrbm/data1.sav?rlkey=qaco6jhkl7ifksp1woe1n6zoc&st=odp5oi9j&dl=1

就可以在 R 中讀取了!

Discussion (Claude)¶

🗂️ Dropbox 連結轉換¶

為什麼要把 0 改成 1?

  • 原始分享連結 (dl=0): 導向 Dropbox 預覽頁面
  • 直接下載連結 (dl=1): 直接取得檔案內容
# ❌ 無法直接讀取 (預覽頁面)
url <- "https://www.dropbox.com/s/abc123/data.csv?dl=0"

# ✅ 可以直接讀取 (檔案內容)
url <- "https://www.dropbox.com/s/abc123/data.csv?dl=1"
data <- read.csv(url)

原理說明

  • dl=0: 返回 HTML 頁面(包含檔案預覽、下載按鈕等)
  • dl=1: 返回原始檔案內容(純 CSV、純文字等)
  • R 的 read.csv() 需要純檔案內容,不能處理 HTML 頁面
🌐 其他雲端儲存服務¶

Google Drive

# 原始分享連結
"https://drive.google.com/file/d/FILE_ID/view?usp=sharing"

# 直接下載連結
"https://drive.google.com/uc?export=download&id=FILE_ID"

OneDrive

# 原始分享連結
"https://onedrive.live.com/view.aspx?resid=RESID"

# 直接下載連結 (將 view.aspx 改為 download.aspx)
"https://onedrive.live.com/download.aspx?resid=RESID"

GitHub

# 網頁檢視連結
"https://github.com/user/repo/blob/main/data.csv"

# 直接檔案連結 (raw)
"https://raw.githubusercontent.com/user/repo/main/data.csv"
🔍 通用原則¶
雲端服務 分享連結類型 直接連結方法
Dropbox 預覽頁面 dl=0 → dl=1
Google Drive 預覽頁面 使用 uc?export=download&id=
OneDrive 預覽頁面 view.aspx → download.aspx
GitHub 網頁檢視 使用 raw.githubusercontent.com
⚠️ 注意事項¶
  1. 權限設定: 確保檔案設為「任何人都可檢視」
  2. 檔案大小: 大檔案可能有下載限制
  3. 連結有效性: 某些連結可能有時效性
  4. 網路環境: 某些地區可能無法存取特定雲端服務
🎯 最佳實踐¶
  • 開發階段: 使用 GitHub raw 連結(最穩定)
  • 小型檔案: Dropbox 或 Google Drive 都可以
  • 大型檔案: 考慮使用專門的資料託管服務
  • 敏感資料: 避免使用公開連結,考慮 API 方式存取
In [11]:
Copied!
link36 = "https://www.dropbox.com/scl/fi/p5fz99jarbidzrejixrbm/data1.sav?rlkey=qaco6jhkl7ifksp1woe1n6zoc&st=odp5oi9j&dl=1"
data36 <- read_sav(link36)
head(data36)
link36 = "https://www.dropbox.com/scl/fi/p5fz99jarbidzrejixrbm/data1.sav?rlkey=qaco6jhkl7ifksp1woe1n6zoc&st=odp5oi9j&dl=1" data36 <- read_sav(link36) head(data36)
A tibble: 6 × 699
release_idinterviewer_idbaby_sexbaby_dobybaby_dobmint_yint_mint_monthsrelationshippfa0101⋯growm03growd03growheigh04groweight04growy04growm04growd04wsel0w_post_selw_raking_sel
<chr><dbl><dbl+lbl><dbl><dbl><dbl><dbl><dbl><dbl+lbl><dbl+lbl>⋯<dbl+lbl><dbl+lbl><dbl+lbl><dbl+lbl><dbl+lbl><dbl+lbl><dbl+lbl><dbl><dbl><dbl>
R00024058020019120131120161035.4411031⋯88888888 83 10.5 104 11 70.77254411.16548460.8851777
R00040488020020120131220161135.4411031⋯8888888888888888.08888888888880.77797881.16548460.8914047
R0005261723000622014 12017 236.8219231⋯88888888 84 10.0 105 5 21.01771281.20050331.1154755
R0007760662005622013122017 137.0849331⋯ 6 10 92 13.5 105 4 90.88358880.89948140.7995080
R00102428830014120131120161035.0465831⋯88888888 89 17.5 104 11 11.08194620.91910770.9940679
R0010971233003912014 22017 135.1452121⋯8888888888888888.08888888888881.35622180.91910771.2460663

COLAB 畫圖小技巧¶

Problem.¶

在 Colab 上畫圖,圖面都太小了。反觀 julia 或 python 圖面都很大很好看。

Solution.¶

在 colab 上用 r 畫圖,請務必加這一行。

  • options(repr.plot.width = 4, repr.plot.height = 3, repr.plot.res = 300)

增加這一句會讓 R 在 Jupyter 上的繪圖好很多(放大)。

In [3]:
Copied!
options(repr.plot.width = 4, repr.plot.height = 3, repr.plot.res = 300)
options(repr.plot.width = 4, repr.plot.height = 3, repr.plot.res = 300)
In [4]:
Copied!
tibble(
  x = 1:100,
  y = rnorm(100)
) |> ggplot(aes(x=x,y=y)) +
  geom_line() +
  labs(title="Random Walk of 100 Steps")
tibble( x = 1:100, y = rnorm(100) ) |> ggplot(aes(x=x,y=y)) + geom_line() + labs(title="Random Walk of 100 Steps")
No description has been provided for this image
In [7]:
Copied!
# 建立資料
data.frame(
  x = 1:100,
  y = rnorm(100)
) %>%
# 使用 lattice 繪圖
xyplot(y ~ x,
       data = .,
       type = "l",                              # 線圖
       main = "Random Walk of 100 Steps",       # 標題
       xlab = "x",                              # x軸標籤
       ylab = "y",                              # y軸標籤
)
# 建立資料 data.frame( x = 1:100, y = rnorm(100) ) %>% # 使用 lattice 繪圖 xyplot(y ~ x, data = ., type = "l", # 線圖 main = "Random Walk of 100 Steps", # 標題 xlab = "x", # x軸標籤 ylab = "y", # y軸標籤 )
No description has been provided for this image
In [8]:
Copied!
y=rnorm(100)
plot(y, type='l')
title("Random Walk of 100 Steps")
y=rnorm(100) plot(y, type='l') title("Random Walk of 100 Steps")
No description has been provided for this image
In [ ]:
Copied!

APT 也要更新 2025-08-25¶

Problem.¶

在 Google Colab 中使用 system("apt install r-cran-tam") 安裝 R 套件明明顯示成功,但執行 library(TAM) 時卻無法正常載入套件。

Solution.¶

關鍵在於先更新 APT 套件清單,完整的安裝流程如下:

# 1. 先更新 APT 套件清單
system("apt-get update")

# 2. 安裝所需的 R 套件
system("apt install r-cran-tam")

# 3. 現在可以正常載入了
library(TAM)
In [ ]:
Copied!

Previous Next

Built with MkDocs using a theme provided by Read the Docs.