title: Faster version of split{base} for very large data frame
body: <p>I have a data frame with roughly three million rows (each row is a booking) and a small number of columns one of them beeing customer id. My goal is to split this data frame by customer id into a list of data frames such that each data frame contains all the bookings of a customer. So I tried</p>
  
  <pre><code>cstmr_list &lt;- split(df, f = df$cstmr_id)
  </code></pre>
  
  <p>but cancelled it after half an hour because it took too long. Next, I only split the indexes with </p>
  
  <pre><code>idx_list &lt;- split(seq(nrow(df)), f = df$cstmr_id)
  </code></pre>
  
  <p>which took less than 10s. Now, I want to populate <code>idx_list</code> with the corresponding rows of <code>df</code>. Who knows how to do it?</p>