title: How do I use the result of idata.frame()?
body: <p>I'd like to use the much-praised <code>idata.frame()</code> function to speed up some large plyr functions, but it's not returning an immutable data frame in the form that I'm expecting. </p>
  
  <p>All the examples I've seen suggest that I can just assign <code>idata.frame(baseball)</code> to a new variable and start working with it, but I'm getting unexpected results from the function:</p>
  
  <pre><code>&gt; ibb &lt;- idata.frame(baseball)
  &gt; str(ibb)
  Classes 'idf', 'environment' &lt;environment: 0x0d0f15d8&gt; 
  &gt; ibb
  &lt;environment: 0x0d0f15d8&gt;
  attr(,"class")
  [1] "idf"         "environment"
  </code></pre>
  
  <p>Thanks for any tips. I'm using R version 2.14.1 with plyr 1.7.1.</p>
  
  <p>EDIT: in the example above, it's possible to run <code>ddply(idata.frame(ibb), .(year), "nrow")</code> successfully, so the immutable object is working as expected in that regard. I'm wondering why certain <code>data.frame</code> behavior isn't available, and if there's any documentation as to the difference.</p>