<div dir="ltr"><div>Just to update everyone that I've found the bug in the package, and now the RcppDend package works fine. You can see the relevant commit here:</div><div><a href="https://github.com/talgalili/RcppDend/commit/25d456571f2f1e52f1f9aa8ac6bc3a7fcb832e65" target="_blank">https://github.com/talgalili/RcppDend/commit/25d456571f2f1e52f1f9aa8ac6bc3a7fcb832e65</a><br>


</div><div><br></div><div>The problem was that my NAMESPACE file was missing the two lines:</div><div><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:13.333333015441895px;line-height:12px;white-space:nowrap;background-color:rgb(248,238,199)">useDynLib(RcppDend)</span><br>


</div><div><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:13.333333015441895px;line-height:12px;white-space:nowrap;background-color:rgb(248,238,199)">exportPattern("^[[:alpha:]]+")</span></div>


<div class="gmail_extra"><br clear="all"><div><div>The reason it was missing them was because I am using Rstudio+roxygen2, and had NAMESPACE editing turned on, and it appears to erase these lines. This had caused R to not find the Rcpp functions, and resulted in the error:</div>


<div><pre style="max-height:600px;width:auto;background-color:rgb(238,238,238);margin-bottom:10px;padding:5px;vertical-align:baseline;line-height:18px;font-size:14px;overflow:auto;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;margin-top:0px;border:0px">

<code style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif"><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">Error</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent"> </span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;color:rgb(0,0,139)">in</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent"> </span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">.</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;color:rgb(43,145,175)">Call</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">(</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">"RcppDend_Rcpp_labels_dendrogram"</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">,</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent"> PACKAGE </span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">=</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent"> </span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">"RcppDend"</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">)</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent"> </span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent">:</span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent"> 
  </span><span style="margin:0px;padding:0px;border:0px;font-size:14px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">"<span style="background-color:transparent;font-size:14px">RcppDend_Rcpp_labels_dendrogram</span><br>


</span></code><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(128,0,0)">"</span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline"> </span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(0,0,139)">not</span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline"> available </span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(0,0,139)">for</span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline"> </span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline">.</span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(43,145,175)">Call</span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline">()</span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline"> </span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(0,0,139)">for</span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline"> </span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(0,0,139)">package</span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline"> </span><span style="font-size:14px;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(128,0,0)">"RcppDend"</span></pre>


</div><div><br></div><div>I have submitted a bug report for RStudio/roxygen2:</div><div><a href="http://support.rstudio.org/help/discussions/problems/8418-rcpp-packages-fails-when-using-roxygen2-to-handle-namespace" target="_blank">http://support.rstudio.org/help/discussions/problems/8418-rcpp-packages-fails-when-using-roxygen2-to-handle-namespace</a><br>


</div><div><a href="https://github.com/klutometis/roxygen/issues/130" target="_blank">https://github.com/klutometis/roxygen/issues/130</a><br></div><div><br></div><div><br></div><div><br></div><div>Future tweaks/commits/suggestions to <a href="https://github.com/talgalili/RcppDend" target="_blank">RcppDend </a>are most welcomed.</div>


<div><br></div><div>Best,</div><div>Tal</div><div><br></div><div><br></div><div><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br>----------------Contact Details:-------------------------------------------------------<br>


Contact me: <a href="mailto:Tal.Galili@gmail.com" target="_blank">Tal.Galili@gmail.com</a> |  <br>Read me: <a href="http://www.talgalili.com" target="_blank">www.talgalili.com</a> (Hebrew) | <a href="http://www.biostatistics.co.il" target="_blank">www.biostatistics.co.il</a> (Hebrew) | <a href="http://www.r-statistics.com" target="_blank">www.r-statistics.com</a> (English)<br>


----------------------------------------------------------------------------------------------<br><br></div></div>
<br><br><div class="gmail_quote">On Fri, Aug 16, 2013 at 9:48 PM, Tal Galili <span dir="ltr"><<a href="mailto:tal.galili@gmail.com" target="_blank">tal.galili@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div dir="ltr">Dear Dirk, Romain, Kevin, and others.<div><br></div><div>Since I am currently actively working on extending the dendrogram object in R, I have a real interest in finding and solving some of the major bottlenecks of dendrogram manipulation.</div>



<div>Thank you all for all of your help and suggestions thus far.</div><div><br></div><div>I took the liberty of starting a github repo for a new R package "RcppDend", you can see it here:</div><div><div><a href="https://github.com/talgalili/RcppDend" target="_blank">https://github.com/talgalili/RcppDend</a><br>



</div></div><div><br></div><div>It currently contains the function for label extraction from dendrogram (a mixture of the code Romain and Dirk wrote, with some minor modifications by me).</div><div>The Rcpp code is here:</div>



<div><a href="https://github.com/talgalili/RcppDend/blob/master/src/labels_dendrogram.cpp" target="_blank">https://github.com/talgalili/RcppDend/blob/master/src/labels_dendrogram.cpp</a><br></div><div>And the R code (wrapping it a bit, and adding documentation), is here:</div>



<div><a href="https://github.com/talgalili/RcppDend/blob/master/R/RcppDend.r" target="_blank">https://github.com/talgalili/RcppDend/blob/master/R/RcppDend.r</a><br></div><div><br></div><div>Currently, I can get the <span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:18px;white-space:pre-wrap">labels.dendrogram</span> function to work when I'm compiling it in a local session, but <b><u>the function fails to work when loaded from this package</u></b>. If you have suggestions on how to fix it, I'd be happy to read.</div>



<div><br></div><div>And in general, I welcome any code contributions/commits.</div><div><br></div><div>Best,</div><div>Tal</div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><div>


<br clear="all">
<div><div dir="ltr"><br>----------------Contact Details:-------------------------------------------------------<br>Contact me: <a href="mailto:Tal.Galili@gmail.com" target="_blank">Tal.Galili@gmail.com</a> |  <br>Read me: <a href="http://www.talgalili.com" target="_blank">www.talgalili.com</a> (Hebrew) | <a href="http://www.biostatistics.co.il" target="_blank">www.biostatistics.co.il</a> (Hebrew) | <a href="http://www.r-statistics.com" target="_blank">www.r-statistics.com</a> (English)<br>



----------------------------------------------------------------------------------------------<br><br></div></div>
<br><br></div><div><div><div class="gmail_quote">On Fri, Aug 16, 2013 at 9:04 PM, Kevin Ushey <span dir="ltr"><<a href="mailto:kevinushey@gmail.com" target="_blank">kevinushey@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">Just a suggestion re: recursion with Rcpp, yet another nice way we can recurse is through using the sugar lapply:<br><br><div>-----</div><div><div><br></div><div>#include <Rcpp.h></div><div>
using namespace Rcpp;</div>
<div><br></div><div>// [[Rcpp::export]]</div></div><div>RObject add_attr(RObject x_) {</div><div>  RObject x = clone(x_);</div><div>  if (is<List>(x)) {</div><div>    x = wrap( lapply( as<List>(x), add_attr ) );</div>




<div>  } else {</div><div>    x.attr("type") = "Other";</div><div>  }</div><div>  return x;</div><div>}</div><div>  </div><div>/*** R</div><div>add_attr( list(x=list(a=1, b=2, c=3), y=list( list( d=4 ) ) ) )</div>




<div>*/</div><div><br></div><div>-----</div><div><br></div><div>If we want to operate on specific elements as well, we can use is<T> and as<T> together, and then operate on objects as needed.</div><div><br></div>




<div>It lets us avoid an explicit for loop, and 'feels' more like R.</div><span><font color="#888888"><div><br></div><div>-Kevin</div></font></span></div>
</blockquote></div><br></div></div></div>
</blockquote></div><br></div></div>