<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:11pt;">
<div><font color="#1F497D">Thanks - that does seem to work, but it doesn’t perform as well as the pre-copying version.</font></div>
<div><font face="Times New Roman" size="3" color="#1F497D"><span style="font-size:12pt;"><br>

<font face="Calibri" size="2"><span style="font-size:11pt;">Here’s </span></font><font face="Calibri" size="2"><span style="font-size:11pt;"> a Gist so the conversation can be more concrete</span></font><font face="Calibri" size="2"><span style="font-size:11pt;">:</span></font></span></font></div>
<div><font color="#1F497D"> </font></div>
<div><font color="#1F497D">  <a href="https://gist.github.com/kenahoo/4991485"><font color="blue"><u>https://gist.github.com/kenahoo/4991485</u></font></a></font></div>
<div><font face="Times New Roman" size="3" color="#1F497D"><span style="font-size:12pt;"> </span></font></div>
<div><font color="#1F497D">For me, the countSteps() version is about 10 times faster than countSteps2().</font></div>
<div><font face="Times New Roman" size="3" color="#1F497D"><span style="font-size:12pt;"> </span></font></div>
<div><font color="#1F497D"> -Ken</font></div>
<div><font face="Times New Roman" size="3" color="#1F497D"><span style="font-size:12pt;"> </span></font></div>
<div><font face="Tahoma" size="2"><span style="font-size:10pt;"><b>From:</b> John Merrill [<a href="mailto:john.merrill@gmail.com">mailto:john.merrill@gmail.com</a>]
<br>

<b>Sent:</b> Tuesday, February 19, 2013 5:46 PM<br>

<b>To:</b> Ken Williams<br>

<b>Cc:</b> Yan Zhou; Dirk Eddelbuettel; rcpp-devel@lists.r-forge.r-project.org<br>

<b>Subject:</b> Re: [Rcpp-devel] Efficient DataFrame access by row & column</span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;"> </span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;">Well, here's a snippet from a much larger routine I used deep inside an implementation of kd-trees:</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:10pt;">  for (int i = 0; i < instances_df.size(); ++i) {</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:10pt;">    const NumericVector& data_column = instances_df[i];</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:10pt;">    for (int j = 0; j < training_instances.size(); ++j) {</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:10pt;">      // Argument order changes here...</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:10pt;">      instances[j][i] = data_column[training_instances[j]];</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:10pt;">    }</span></font></div>
<div><font face="Courier New" size="2"><span style="font-size:10pt;">  }</span></font></div>
<div><font face="Courier New" size="2" color="#1F497D"><span style="font-size:10pt;"> </span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;">To set expectations, training_instances can be very large indeed (ca. 1M).   The code is quite fast.</span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;"> </span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;">(And sorry, Dirk -- yes, I really do have an access of the form x[i][j].  Mea culpa, etc.)</span></font></div>
<div style="margin-bottom:12pt;"><font face="Times New Roman" size="3"><span style="font-size:12pt;"> </span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;">On Tue, Feb 19, 2013 at 3:26 PM, Ken Williams <<a href="mailto:Ken.Williams@windlogics.com"><font color="blue"><u>Ken.Williams@windlogics.com</u></font></a>> wrote:</span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;"><br>

<br>

> From: John Merrill [mailto:<a href="mailto:john.merrill@gmail.com"><font color="blue"><u>john.merrill@gmail.com</u></font></a>]<br>

> Sent: Tuesday, February 19, 2013 5:24 PM<br>

> To: Ken Williams<br>

> Cc: Yan Zhou; Dirk Eddelbuettel; <a href="mailto:rcpp-devel@lists.r-forge.r-project.org"><font color="blue"><u>rcpp-devel@lists.r-forge.r-project.org</u></font></a></span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;">> Subject: Re: [Rcpp-devel] Efficient DataFrame access by row & column<br>

></span></font></div>
<div style="margin-bottom:12pt;"><font face="Times New Roman" size="3"><span style="font-size:12pt;">> I'm a little puzzled by your question.  Could you use a reference instead of instantiating a new copy?</span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;">I would love to use a reference, but I don't know how.  That's in fact the essence of my question. =)<br>

<br>

Is there already some example code somewhere showing how to get reference to a DataFrame column without copying?  I must be just missing it.</span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;"><br>

 -Ken<br>

<br>

<br>

________________________________<br>

<br>

CONFIDENTIALITY NOTICE: This e-mail message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution of any kind is strictly prohibited. If you are not
the intended recipient, please contact the sender via reply e-mail and destroy all copies of the original message. Thank you.</span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;"> </span></font></div>
<div><font face="Times New Roman" size="3"><span style="font-size:12pt;"> </span></font></div>
</span></font>
</body>
</html>