iotoolsの概要:データのインポート

Rで学ぶスケーラブルなデータ処理

Simon Urbanek

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

チャンク単位の処理

  1. データを部分的に読み込む
  2. ネイティブオブジェクトに変換する
  3. 計算を実行し結果を保存する

すべてのデータが処理されるまで1〜3を繰り返す

Rで学ぶスケーラブルなデータ処理

データのインポート

  • データの読み込みは処理より時間がかかることが多く、2段階で行われる
    • ディスクからのデータ取得は比較的低速
    • 生データをRのネイティブオブジェクトに変換する
Rで学ぶスケーラブルなデータ処理

iotoolsによるデータのインポート

iotoolsパッケージでは、データの物理的な読み込みとRオブジェクトへの解析を分離することで、柔軟性とパフォーマンスを向上させています。

Rで学ぶスケーラブルなデータ処理

iotools:データのインポート

  • readAsRaw() はデータ全体を生ベクトルとして読み込む
  • read.chunk() はデータをチャンク単位で生ベクトルとして読み込む
Rで学ぶスケーラブルなデータ処理

iotools:データの解析

  • mstrsplit() は生データを行列に変換する
  • dstrsplit() は生データをデータフレームに変換する
Rで学ぶスケーラブルなデータ処理

iotools:データの読み込みと解析

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

Rで学ぶスケーラブルなデータ処理

チャンク単位の処理

  • すべてのデータをインポートする必要はない
  • データソースから一度に「チャンク」単位で読み込む
  • 中間構造は不要
Rで学ぶスケーラブルなデータ処理

ファイル接続

# Open a file connection
fc <- file("data-file.csv", "rb")
# Read the first line if the data has a header
readLines(fc, n = 1)
....
# Code to import and parse the data
....
# Close the file connection
close(fc)
Rで学ぶスケーラブルなデータ処理

練習しましょう!

Rで学ぶスケーラブルなデータ処理

Preparing Video For Download...