初探 iotools:匯入資料

R 的可擴展資料處理

Simon Urbanek

Member of R-Core, Lead Inventive Scientist, AT&T Labs Research

分塊處理(chunk-wise)

  1. 載入部分資料
  2. 轉成原生物件
  3. 計算並儲存結果

重複 1–3,直到處理完所有資料

R 的可擴展資料處理

匯入資料

  • 通常載入比處理更花時間,且分兩步進行
    • 從磁碟讀取資料相對較慢
    • 將原始資料轉為 R 原生物件
R 的可擴展資料處理

使用 iotools 匯入資料

在 iotools 套件中,資料的實體載入與將輸入剖析為 R 物件是分離的,以提升彈性與效能。

R 的可擴展資料處理

iotools:匯入資料

  • readAsRaw() 將整份資料讀成 raw 向量
  • read.chunk() 以分塊讀取資料為 raw 向量
R 的可擴展資料處理

iotools:剖析資料

  • mstrsplit() 將 raw 資料轉為矩陣
  • dstrsplit() 將 raw 資料轉為資料框 data frame
R 的可擴展資料處理

iotools:載入與剖析

read.delim.raw() = readAsRaw() + dstrsplit()

R 的可擴展資料處理

分塊處理(chunk-wise)

  • 不必一次匯入全部資料
  • 每次讀取一個「chunk」的列數
  • 不產生中介結構
R 的可擴展資料處理

檔案連線

# 開啟檔案連線
fc <- file("data-file.csv", "rb")
# 若有標頭則讀取第一行
readLines(fc, n = 1)
....
# 匯入與剖析資料的程式碼
....
# 關閉檔案連線
close(fc)
R 的可擴展資料處理

一起來練習吧!

R 的可擴展資料處理

Preparing Video For Download...