I've been using data.table heavily since UseR! 2012.  <div><br></div><div>For the most part it's been nothing short of a magical panacea, until today.  </div><div><br></div><div>I had a strange problem where using setkey on a data table makes the file huge (in comparison to what it should be) when it saves.  </div>
<div><br></div><div><div>I spent hours trying to reproduce this with similar data that I could share, but I couldn't get it to happen on simulated data.</div></div><div><br></div><div>Here is an outline of my process:</div>
<div>Data table 1 (DT1) is about 80 mb when I save</div><div>Data table 2 (DT2) is about 10 mb when I save</div><div>Data table 3 (DT3) = cbind(DT1, DT2)</div><div><div><br></div><div><div>Data table 3 is about 90 mb when I save  (so far so good)</div>
</div></div><div><br></div><div>If I set the key of DT3 to be a particular column (for me it's isotime), suddently the table is 212 mb of disk space</div><div>If I change the key to something else, or set it to NULL it still takes 212 mb</div>
<div><br></div><div>HOWEVER, if I never set DT3's key to isotime, but I set it to another column instead (like a "name" field), then the file only takes about 90 mb as expected</div><div><br></div><div>The memory ballooning only happens with the save.  The actual "in memory" values for these data sets are about the right size.</div>
<div><br></div><div>I need to step, but I can give more information tomorrow if you would like. </div><div><br></div><div>I'm using R 2.15.1 "Roasted Marshmallows" and a Windows 7 machine.  The package version is data.table 1.8.2 </div>
<div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>