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