<div dir="ltr"><div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace">Hi to all,</font></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace"><br></font></div>

<div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace">I was investigating a way to write with Rcpp a function that removes all the NA values in the input vector.</font></div><div class="gmail_default" style="color:rgb(0,0,0)">

<font face="courier new, monospace"><br></font></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace">And before doing so, I was playing with Rcpp, writing this function:</font></div>

<div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace"><br></font></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace">library(inline)</font></div>

<div class="gmail_default" style="color:rgb(0,0,0)"><pre class="" style="margin-top:0px;margin-bottom:10px;padding:5px;border:0px;font-size:14px;vertical-align:baseline;background-color:rgb(238,238,238);overflow:auto;width:auto;max-height:600px;line-height:18px">

<code style="margin:0px;padding:0px;border:0px;vertical-align:baseline"><font face="courier new, monospace"><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">cppFunction</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">'
  Vector<INTSXP> na_test(const Vector<INTSXP>& x) {
    return setdiff(x, Vector<INTSXP>::create(::traits::get_na<INTSXP>()));
  }
'</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">)</span></font></code></pre></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace">That works in this way:</font></div>

<div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace"><br></font></div><div class="gmail_default" style="color:rgb(0,0,0)"><pre class="" style="margin-top:0px;margin-bottom:10px;padding:5px;border:0px;font-size:14px;vertical-align:baseline;background-color:rgb(238,238,238);overflow:auto;width:auto;max-height:600px;line-height:18px">

<code style="margin:0px;padding:0px;border:0px;vertical-align:baseline"><font face="courier new, monospace"><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">na_test</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">c</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">(</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">1</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> NA</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> NA</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> </span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">1</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> </span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:rgb(128,0,0)">2</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">,</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent"> NA</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">))</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent">
</span><span class="" style="margin:0px;padding:0px;border:0px;vertical-align:baseline;background-color:transparent;color:gray"># [1] 1 2</span></font></code></pre></div><div class="gmail_default" style="color:rgb(0,0,0)">

<font face="courier new, monospace"><br></font></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace">How can I write a generalized version of this function, for example?<br><br>I've made an attempt (see <a href="http://stackoverflow.com/questions/15953768/templated-rcpp-function">stackoverflow related question</a>). It compiles but it doesn't work as expected.</font></div>

<div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace"><br></font></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace">Any suggest or example?</font></div>

<div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace"><br></font></div><div class="gmail_default" style="color:rgb(0,0,0)"><font face="courier new, monospace">Thanks in advance,</font></div>

<div class="gmail_default" style="font-family:'courier new',monospace;color:rgb(0,0,0)"><br></div><div><div dir="ltr"><font face="courier new, monospace" color="#666666">Leonardo Di Donato</font></div></div>
</div>