freadでzipファイルを読み込む
data.tableのfreadは読み込みがめちゃ速いがzipをそのまま読み込んでくれない。
> fread("C:/Users/hoge/iris.zip") Error in fread("C:/Users/h1030/iris.zip") : embedded nul in string: '$Qcーゥエネ?e轄I7!H\036ヲ+1ォ:粐*=\026\035mス岻Iンキ弌GS?T)レ\xe4\001ェR倉6\006絛*>イ?リ耘ァ\020�啗テ\031\0038軋M6Vォ\xec\017モ]H\xfa(ネイ\036軍!玉トミエ\037カW)J&ヨGUオ\x87+1\003ン�佻ユ列W、条De\033レ1\xecw薤\036\030戎ワj\020\xfeクt\021e=ミHクC\x85Fュ\x86zヤ\027\xeaツom\xeb」h\xfb\022恨ヘ」\xee\v"Z\x85\xa0シNケ/閻\xa0\177'zゥsゥ'レ\xff\aPK\001\002\024\0\024\0\0\0\b\0\x98v?D沮ツ\xfcq\004\0\0l\023\0\0\b\0\0\0\0\0\0\0\001\0 \0\0\0\0\0\0\0iris.csvPK\005\006\0\0\0\0\001\0\001\06\0\0\0\x97\004\0\0\0\0'
だが、以前も書いたようにfreadはシェルのコマンドを受け付けてくれる。
2014-01-21 - 盆栽日記
なのでシェル上でunzipしてそれをfreadに渡せば良い。便利!
> fread("unzip -p C:/Users/hoge/iris.zip") V1 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1: 1 5.1 3.5 1.4 0.2 setosa 2: 2 4.9 3.0 1.4 0.2 setosa 3: 3 4.7 3.2 1.3 0.2 setosa 4: 4 4.6 3.1 1.5 0.2 setosa 5: 5 5.0 3.6 1.4 0.2 setosa --- 146: 146 6.7 3.0 5.2 2.3 virginica 147: 147 6.3 2.5 5.0 1.9 virginica 148: 148 6.5 3.0 5.2 2.0 virginica 149: 149 6.2 3.4 5.4 2.3 virginica 150: 150 5.9 3.0 5.1 1.8 virginica