<div dir="ltr">Se a sua função não faz o que deveria fazer, bem, então acho que ela tem um bug! =)<div><br></div><div>Eu reescrevi sua função, eacho que agora funciona. Seu problema era de índice. Não existe índice 0 no R (diferentemente de C, por exemplo). Matriz, vetor etc. começa sempre em 1.</div><div><br></div><div><div>conv2 <- function(n, m=0.1, dp=sqrt(0.05)) {</div><div>  u <- matrix(nrow=n+1,ncol=1)</div><div>  f <- function(x) {pnorm(x,m,dp)}</div><div>  p <- function(x) {f(x)}</div><div>  I <-  function (x) {-p(x)*log2(p(x)) }</div><div>  u[1,]<- I(0)</div><div>  for (i in 2:n) { </div><div>    f  <-  function(i) {pnorm(i*1/n,m,dp)}</div><div>    p <-  function(i) {f(i)-f(i-1)}</div><div>    u[i,]<- I(i)</div><div>  }</div><div>  y <-u[0:n,]</div><div>  y</div><div>}</div></div><div><br></div><div><br><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2014-11-18 15:12 GMT-02:00 Daniela Recchia <span dir="ltr"><<a href="mailto:daniela_recchia@yahoo.com.br" target="_blank">daniela_recchia@yahoo.com.br</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="color:#000;background-color:#fff;font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:12px"><div dir="ltr"><span>Olá Manoel,</span></div><div dir="ltr"><span><br></span></div><div dir="ltr"><span>obrigada pelo retorno. Não conhecia o GitHub obrigada pela indicação.</span></div><div dir="ltr"><span><br></span></div><div dir="ltr"><span>A princípio os valores de m e dp são fixos, não são importantes nesse exemplo, e não tenho nenhum Bug pra solucionar, a função funciona perfeitamente, com a única exceção de que o valor para i=0 não é calculado corretamente.</span></div><div dir="ltr"><span><br></span></div><div dir="ltr"><span>É isso mesmo que eu quero, ter os valores de f e p para então realizar a multiplicação que será retornada na matriz. Aqui um exemplo: (usei </span>m=0.1; <span style="font-size:12px">dp=sqrt(0.05))</span></div><div dir="ltr"><span style="font-size:12px"><br></span></div><div dir="ltr">> conv(10)</div><div dir="ltr"> [1] 0.437497149 0.437497149 0.399621300 0.323958199 0.224710500 0.129711990</div><div dir="ltr"></div><div dir="ltr"> [7] 0.061315128 0.023552114 0.007329468 0.001846871</div><div dir="ltr"><br></div><div dir="ltr">Veja que o primeiro e o segundo valores sãi iguais (o que na verdade corresponde a i=1) e é isso que quero resolver.</div><div dir="ltr"><br></div><div dir="ltr">Abraços,</div><div dir="ltr"><br></div><div dir="ltr">Daniela</div><div></div><div> </div><div><div><span style="font-size:16px">-- <br><font>Daniela Rodrigues Recchia</font></span></div><div><span style="font-size:16px"><font>M.Sc. in Statistics</font><br><var></var></span></div><div style="color:rgb(0,0,0);font-size:16px;font-family:arial,helvetica,clean,sans-serif;background-color:transparent;font-style:italic"><span style="font-size:16px"><font><br></font></span></div><div style="color:rgb(0,0,0);font-family:arial,helvetica,clean,sans-serif;font-style:normal;background-color:transparent"><span style="font-size:13px">Tel. (Mobil): <a href="tel:%2B49%2001578%207588382" value="+4915787588382" target="_blank">+49 01578 7588382</a></span></div><div><span style="font-size:16px"><font>Germany</font></span></div><span class=""><div style="color:rgb(0,0,0);font-size:13px;font-family:arial,helvetica,clean,sans-serif;background-color:transparent;font-style:normal"><span style="font-size:16px"><font><br></font></span></div><div><span style="font-size:10px"></span></div><div><span style="font-size:10px"><span style="line-height:18px;font-family:'helvetica neue',arial,sans-serif;font-style:italic"><font>“The standard of success in life is absolutely the amount of joy you feel”</font></span><br></span><span style="font-size:13px"><span style="font-size:10px"><span style="line-height:18px;font-family:'helvetica neue',arial,sans-serif;font-style:italic"><font>Esther & Jerry Hick</font></span></span><br></span></div><div><span style="font-size:small"> </span></div></span></div> <div><br><br></div><div style="display:block"> <div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:12px"> <div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:16px"> <div dir="ltr"> <font face="Arial"> Em Terça-feira, 18 de Novembro de 2014 18:01, Manoel Galdino <<a href="mailto:mcz.fea@gmail.com" target="_blank">mcz.fea@gmail.com</a>> escreveu:<br> </font> </div><div><div class="h5">  <br><br> <div><div><div><div dir="ltr">Seu código tá bem ruim de ler...<div>Recomendo que você utilize o GitHub para postar seus códigos. Além disso, ajudaria se você dissesse o que pretende com a função. Do jeito que está é bem difícil ajudar.</div><div><br clear="none"></div><div>Mas voltando a sua pergunta. Fiz algumas alterações no código (só reorganizei). Veja se está funcionando...</div><div><br clear="none"></div><div><br clear="none"><div><br clear="none"></div><div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">conv<- function(n) {</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                   u <- matrix(nrow=n+1,ncol=1)</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                        for (i in 0:n) { </div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                                if (i==0) {</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                                      f <- function(i) {pnorm(i,m,dp)}</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                                      p<- function(i) {f(i)}</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                                } else  {</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                                      f  <-  function(i) {pnorm(i*1/n,m,dp)}</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                                      p <-  function(i) {f(i)-f(i-1)}<br clear="none"></div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                               }</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                     I <-  function (i) {-p(i)*log2(p(i))}</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                     u[i,]<- I(i)}</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                   y <-u[0:n,]</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">                   y }</div></div></div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px"><br clear="none"></div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px"><br clear="none"></div><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">Use o browser pra você debugar seu código. <a rel="nofollow" shape="rect" href="http://adv-r.had.co.nz/Exceptions-Debugging.html" target="_blank">No livro do Hadley</a> tem mais explicações sobre como debugar um código.</div><div dir="ltr" style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px"><br clear="none"></div><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">abçs</div><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">M</div><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px"><br clear="none"></div><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">ps.: Onde que os argumentos 'm' e 'dp' entram na função? Eles são valores globais? Não é a prática mais recomendada...</div><div style="color:rgb(0,0,0);font-family:HelveticaNeue,'Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:12px">ps.2: a cada iteração do loop, as funções f e p são subscritas, de forma que ao final você terá uma f e uma p, dada por i igual a n. É isso mesmo que você quer?</div></div><div><br clear="none"><div>On Tue, Nov 18, 2014 at 2:00 PM, Daniela Recchia <span dir="ltr"><<a rel="nofollow" shape="rect" href="mailto:daniela_recchia@yahoo.com.br" target="_blank">daniela_recchia@yahoo.com.br</a>></span> wrote:<br clear="none"><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div style="color:#000;background-color:#fff;font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:12px"><div dir="ltr"><span>Boa tarde pessoal,</span></div><div dir="ltr"><span><br clear="none"></span></div><div dir="ltr"><span>tenho certeza que meu problema é bem simples mas não estou conseguindo visualizar a solução, criei a função:</span></div><div dir="ltr"><span><br clear="none"></span></div><div dir="ltr">conv<- function(n){u<-matrix(nrow=n+1,ncol=1)</div><div dir="ltr">                   for (i in 0:n) { </div><div dir="ltr">                     if(i==0) f<-function(i) {pnorm(i,m,dp)}</div><div dir="ltr">                     else     f<- function(i) {pnorm(i*1/n,m,dp)}</div><div dir="ltr">                     if(i==0) p<- function(i) {f(i)}</div><div dir="ltr">                     else     p<- function(i) {f(i)-f(i-1)}</div><div dir="ltr">                     I<- function (i) {-p(i)*log2(p(i))}</div><div dir="ltr">                     u[i,]<- I(i)}</div><div dir="ltr">                   y<-u[0:n,]; y}</div><div dir="ltr"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">Mas para o caso onde i==0 não está sendo feito corretamente, e preciso idendificar se não tenho problemas na condição <span style="font-size:11.8181819915771px">f(i)-f(i-1), o que ele retorna no lugar do i=0 é o valor do i=1.</span></div><div dir="ltr"><span style="font-size:11.8181819915771px"><br clear="none"></span></div><div dir="ltr"><span style="font-size:11.8181819915771px">Alguém saberia me dar uma dica?</span></div><div dir="ltr"><span style="font-size:11.8181819915771px"><br clear="none"></span></div><div dir="ltr"><span style="font-size:11.8181819915771px">Abraços,</span></div><div dir="ltr"><span style="font-size:11.8181819915771px"><br clear="none"></span></div><div dir="ltr"><span style="font-size:11.8181819915771px">Daniela</span></div><span><font color="#888888"></font></span><div></div><div> </div><div><div><span style="font-size:16px">-- <br clear="none"><font>Daniela Rodrigues Recchia</font></span></div><div><br clear="none"></div><div style="color:rgb(0,0,0);font-size:13px;font-family:arial,helvetica,clean,sans-serif;background-color:transparent;font-style:normal"><span style="font-size:16px"><font><br clear="none"></font></span></div><div><span style="font-size:10px"></span></div><div><span style="font-size:10px"><span style="line-height:18px;font-family:'helvetica neue',arial,sans-serif;font-style:italic"><font>“The standard of success in life is absolutely the amount of joy you feel”</font></span><br clear="none"></span><span style="font-size:13px"><span style="font-size:10px"><span style="line-height:18px;font-family:'helvetica neue',arial,sans-serif;font-style:italic"><font>Esther & Jerry Hick</font></span></span><br clear="none"></span></div><div><span style="font-size:small"> </span></div></div></div></div></div><br clear="none">_______________________________________________<br clear="none">
R-br mailing list<br clear="none">
<a rel="nofollow" shape="rect" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br clear="none">
<a rel="nofollow" shape="rect" 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 clear="none">
Leia o guia de postagem (<a rel="nofollow" shape="rect" 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 clear="none"></blockquote></div><br clear="none"><br clear="all"><div><br clear="none"></div>-- <br clear="none"><div>Manoel Galdino<br clear="none"><a rel="nofollow" shape="rect" href="https://sites.google.com/site/galdinomcz/" target="_blank">https://sites.google.com/site/galdinomcz/</a><br clear="none"></div>
</div></div></div><br><br></div>  </div></div></div> </div>  </div> </div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Manoel Galdino<br><a href="https://sites.google.com/site/galdinomcz/" target="_blank">https://sites.google.com/site/galdinomcz/</a><br></div>
</div>