<div dir="ltr">Pelo que eu entendo, o Rcpp compila o codigo que você escreve em c++ numa função, então tem que ter o compilador, no linux ele usa o gcc, agora no windows não sei, mas imagino que esteja faltando o compilador. De uma olhada nesse post:<div>
<a href="http://www.r-bloggers.com/installing-rcpp-on-windows-7-for-r-and-c-integration/">http://www.r-bloggers.com/installing-rcpp-on-windows-7-for-r-and-c-integration/</a></div><div><div><div><br></div><div>E em outro forum, fui informado que o problema é o meu codigo mesmo, imagino que so da para fazer o algoritimo mandando os dois argumentos, o vetor e o tamanho dele.</div>
<div><a href="http://stackoverflow.com/questions/19472211/how-to-remove-an-element-in-numericvector-for-a-recursion-using-r-and-rcpp">http://stackoverflow.com/questions/19472211/how-to-remove-an-element-in-numericvector-for-a-recursion-using-r-and-rcpp</a><br>
</div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Em 20 de outubro de 2013 20:44, Mauro Sznelwar <span dir="ltr"><<a href="mailto:sznelwar@uol.com.br" target="_blank">sznelwar@uol.com.br</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>
<div bgcolor="#ffffff">
<div><font color="#0000ff" size="4" face="Arial"><strong>Windows
XP</strong></font></div><div><div class="h5">
<blockquote style="BORDER-LEFT:#000000 2px solid;PADDING-LEFT:5px;PADDING-RIGHT:0px;MARGIN-LEFT:5px;MARGIN-RIGHT:0px">
<div dir="ltr">
<div>
<div>@<span style="FONT-FAMILY:arial,sans-serif;WHITE-SPACE:nowrap;FONT-SIZE:13px;FONT-WEIGHT:bold">Mauro
Sznelwar</span></div></div>
<div>Qual sistema operacional você esta usando?</div>
<div>Parece que o erro tem haver de estar faltando alguma coisa, o compilador
de c++?</div>
<div>Eu uso o ubunto aqui, e ja veio junto o compilador, o compilador está
instalado ae certinho?</div>
<div>Na verdade eu não entendo muito bem de rcpp, estou apenas testando, mas
talvez seja algo nesse sentido o erro ae. Aqui funciona normal o codigo.</div>
<div><br></div>
<div><br></div>
<div>E o vetor.erase(n) não funcionou :(</div>
<div><br></div>
<div>Quando eu tentei assim, deu uma msg de erro:<br></div>
<div><br></div>
<div>library(Rcpp)<br></div>
<div>vetor<-sample(100)<br></div>
<div><br></div>
<div>> cppFunction("</div>
<div>+ NumericVector insertionsortRC(NumericVector vetor)
{</div>
<div>+ int n = vetor.size();</div>
<div>+ double aux;</div>
<div>+ int i;</div>
<div>+ if(n>1) {</div>
<div>+ vetor.erase(n);</div>
<div>+ insertionsortRC(vetor);</div>
<div>+ aux=vetor[n-1];</div>
<div>+ i=n-1;</div>
<div>+ while(vetor[i-1]>aux
&& i>=0 ) {</div>
<div>+
vetor[i]=vetor[i-1];</div>
<div>+ i--;</div>
<div>+ }</div>
<div>+ vetor[i]=aux;</div>
<div>+ }</div>
<div>+ return vetor;</div>
<div>+ }</div>
<div>+ ")</div>
<div>> insertionsortRC(vetor)</div>
<div>*** Error in `/usr/lib/R/bin/exec/R': malloc(): memory corruption:
0x098db548 ***</div>
<div><br></div>
<div>Ai eu pensei se tinha algo haver com o indice, ai tentei com n-1, assim
no vetor.erase(n-1)</div>
<div><br></div>
<div>
<div>> vetor</div>
<div> [1] 33 31 86 25 70 40 88
81 13 85 87 39 60 64 10
82 89 14 66 36 15 96 26</div>
<div> [24] 4 54 29 83 55 68 91
6 100 51 7 53 99 65 23 94
57 90 32 47 16 50 28</div>
<div> [47] 3 98 11 18 76 63 77
74 49 8 97 12 27 35 79
80 20 67 93 5 56 9 37</div>
<div> [70] 24 92 69 38 44 17 46
43 34 19 2 95 72 1 61
41 62 22 42 21 84 48 78</div>
<div> [93] 73 30 59 58 52 75 71
45</div>
<div><br></div>
<div>> insertionsortRC(vetor)</div>
<div> [1] 3.607393e-313 3.300000e+01 3.100000e+01
8.600000e+01 2.500000e+01 7.000000e+01</div>
<div> [7] 4.000000e+01 8.800000e+01 8.100000e+01
1.300000e+01 8.500000e+01 8.700000e+01</div>
<div>[13] 3.900000e+01 6.000000e+01 6.400000e+01
1.000000e+01 8.200000e+01 8.900000e+01</div>
<div>[19] 1.400000e+01 6.600000e+01 3.600000e+01
1.500000e+01 9.600000e+01 2.600000e+01</div>
<div>[25] 4.000000e+00 5.400000e+01 2.900000e+01
8.300000e+01 5.500000e+01 6.800000e+01</div>
<div>[31] 9.100000e+01 6.000000e+00 1.000000e+02
5.100000e+01 7.000000e+00 5.300000e+01</div>
<div>[37] 9.900000e+01 6.500000e+01 2.300000e+01
9.400000e+01 5.700000e+01 9.000000e+01</div>
<div>[43] 3.200000e+01 4.700000e+01 1.600000e+01
5.000000e+01 2.800000e+01 3.000000e+00</div>
<div>[49] 9.800000e+01 1.100000e+01 1.800000e+01
7.600000e+01 6.300000e+01 7.700000e+01</div>
<div>[55] 7.400000e+01 4.900000e+01 8.000000e+00
9.700000e+01 1.200000e+01 2.700000e+01</div>
<div>[61] 3.500000e+01 7.900000e+01 8.000000e+01
2.000000e+01 6.700000e+01 9.300000e+01</div>
<div>[67] 5.000000e+00 5.600000e+01 9.000000e+00
3.700000e+01 2.400000e+01 9.200000e+01</div>
<div>[73] 6.900000e+01 3.800000e+01 4.400000e+01
1.700000e+01 4.600000e+01 4.300000e+01</div>
<div>[79] 3.400000e+01 1.900000e+01 2.000000e+00
9.500000e+01 7.200000e+01 1.000000e+00</div>
<div>[85] 6.100000e+01 4.100000e+01 6.200000e+01
2.200000e+01 4.200000e+01 2.100000e+01</div>
<div>[91] 8.400000e+01 4.800000e+01 7.800000e+01
7.300000e+01 3.000000e+01 5.900000e+01</div>
<div>[97] 5.800000e+01 5.200000e+01 7.500000e+01</div>
<div>> </div></div>
<div><br></div>
<div>Ai não funcionou. Mandando o vetor e o n junto, tudo funcionava, então
acho que estou realizando alguma operação errada na chamada recursiva
ali.</div>
<div><br></div>
<div>Olhando a descrição do comando aqui:</div>
<div><a href="http://www.cplusplus.com/reference/vector/vector/erase/" target="_blank">http://www.cplusplus.com/reference/vector/vector/erase/</a><br></div>
<div><br></div>
<div>Ele diz que apaga da memoria o valor, então imagino que talvez esteja
dando problema na volta da recursão. Acho que não é tão simples usar Rcpp
quanto imaginava.</div>
<div>Quando no primeiro caso la ele diz "memory corruption: 0x098db548", esse
é o endereço de memoria que eu usei errado não é?</div>
<div><br></div>
<div><br></div>
<div><br></div></div>
<div class="gmail_extra"><br><br> </div></blockquote></div></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>
<div dir="ltr"><div>Grato<br>Augusto C. A. Ribas</div>
<div> </div>
<div>Site Pessoal: <a href="http://recologia.com.br/" target="_blank">http://recologia.com.br/</a><a href="http://augustoribas.heliohost.org" target="_blank"></a></div><div>Github: <a href="https://github.com/Squiercg" target="_blank">https://github.com/Squiercg</a></div>
<div>Lattes: <a href="http://lattes.cnpq.br/7355685961127056" target="_blank">http://lattes.cnpq.br/7355685961127056</a><br></div></div>
</div>