生データを読み込み、データ構造に変換する
前にも述べたとおり、iotools が高速な理由のひとつは、ハードドライブからの読み込み処理と、読み込んだバイナリデータを data.frame や matrix に変換する処理を分離している点にあります。バイナリ形式のデータは、ハードドライブからメモリに raw オブジェクトとしてコピーされます。これらの raw オブジェクトは、その後、最適化された関数に渡され、data.frame や matrix オブジェクトに変換されます。
この演習では、ディスクからの読み込み(readAsRaw() 関数を使用)をデータ変換から分けて行い、その後で raw バイナリデータを matrix または data.frame に変換する方法(mstrsplit() と dstrsplit() 関数を使用)を学びます。
この演習はコースの一部です
Rで学ぶスケーラブルなデータ処理
演習の手順
"mortgage-sample.csv"を raw ベクトルとして読み込みます。- その raw ベクトルの内容を整数の
matrixに変換します。 - その raw ベクトルの内容を、整数の列が16本ある
data.frameに変換します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Read mortgage-sample.csv as a raw vector
raw_file_content <- ___("mortgage-sample.csv")
# Convert the raw vector contents to a matrix
mort_mat <- ___(___, sep = ",", type = ___, skip = 1)
# Look at the first 6 rows
head(mort_mat)
# Convert the raw file contents to a data.frame
mort_df <- ___(___, sep = ",", col_types = rep("integer", 16), skip = 1)
# Look at the first 6 rows
head(mort_df)