<div dir="ltr"><div>Hi,</div><div><br></div>I guess you could put them into a list and then rbind at the end:<div><br></div><div><font face="courier new, monospace">indi <- list()<br></font></div><div><div><font face="courier new, monospace">k=1</font></div>

<div><font face="courier new, monospace">indi[[k]] <- list(i=2L,j=6L); k <- k+1</font></div><div><font face="courier new, monospace">indi[[k]] <- list(4L,5L); k <- k+1</font></div><div><font face="courier new, monospace">rbindlist(indi)</font></div>

</div><div><div><font face="courier new, monospace">#    i j</font></div><div><font face="courier new, monospace"># 1: 2 6</font></div><div><font face="courier new, monospace"># 2: 4 5</font></div></div><div><br></div><div>

For some reason, I couldn't get rbindlist to work unless the first item in indi had explicit names ("i" and "j"), but names aren't needed for later items.</div><div><br></div><div>This should be better than dynamically growing with rbind each time, but there may be a faster way. If your criteria for selecting (i,j) can be written down, there's likely a much faster way than looping like this.</div>

<div><br></div><div>Best,</div><div><br></div><div>--Frank</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Sep 17, 2013 at 2:13 PM, Nathaniel Graham <span dir="ltr"><<a href="mailto:npgraham1@gmail.com" target="_blank">npgraham1@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I'm currently using a (moderately) complex function, call <div>if f(), as a j expression to analyze my data.  The data itself</div>

<div>is about 1.2M rows, which I analyze by group.<div>A group may have as few as one row or as many as 10K.</div>
<div>The output from the function is a two-column data.table</div><div>where the rows are interesting (for my work) pairs of</div><div>observations--I have no idea how many pairs will be</div><div>interesting until the function runs, but in abstract it could</div>


<div>be every unique combination (so as many as 50M rows</div><div>of output for one call to f()).  It is common, and not an</div><div>error, for groups to have no meaningful pairs to return.</div><div><br></div><div>I've been using the following line to create the output for</div>


<div>f():</div><div><br></div><div>indices <- data.table(i = integer(), j = integer())<br></div><div><br></div><div>I then append to 'indices' any useful pairs using:</div><div><br></div><div>indices <- rbind(indices, list(idx[i], idx[j]))<br>


</div><div><br></div><div>This works, but is very, very slow, in part because I'm </div><div>using rbind().  I want to switch to using the built-in matrix,</div><div>because rbind() should be much faster for them.  Using</div>


<div>the following line to create the matrix:</div><div><br></div><div>indices <- matrix(nrow = 0, ncol = 2, dimnames = list(c(NULL),c("i","j")))<br></div><div><br></div><div>results in the following error:</div>


<div><br></div><div>Logical error. Type of column should have been checked by now<br></div><div><br></div><div>Note that the values returned are always integers.  Results are </div><div>coerced via:</div><div><br></div><div>


data.table(indices)</div><div><div><br></div><div>before returning from f().  If I don't explicitly coerce, I get the</div><div>following error:</div><div><br></div><div>j doesn't evaluate to the same number of columns for each group<br>


</div><div><br></div><div>If someone could tell me what I'm doing wrong, or some other</div><div>equivalent way to noticeably speed up the whole process, I'd</div><div>be very grateful.</div><div><br></div><div><br>


</div><div>-------<br>Nathaniel Graham<br><a href="mailto:npgraham1@gmail.com" target="_blank">npgraham1@gmail.com</a><br><a href="mailto:npgraham1@uky.edu" target="_blank">npgraham1@uky.edu</a></div>
</div></div></div>
<br>_______________________________________________<br>
datatable-help mailing list<br>
<a href="mailto:datatable-help@lists.r-forge.r-project.org">datatable-help@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help</a><br></blockquote></div><br></div>