<div dir="ltr"><div><div>Da para fazer assim:</div><div><br></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div>calcula_matriz <- function (A = rbind(c( p + 8, 3), c( 5, p - 1)), limite) { </div>
</div><div><div><span class="" style="white-space:pre">     </span>for (p in 1:limite ) {</div></div><div><div><span class="" style="white-space:pre">              </span>print(A)</div></div><div><div><span class="" style="white-space:pre">    </span>} </div>
</div><div><div>}</div></div><div><div>calcula_matriz(limite = 1)</div></div></blockquote><div><div><br></div><div>Mas se A tiver sempre o mesmo formato, não precisa ser parâmetro:</div><div><br></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div><div>calcula_matriz <- function (limite) { </div></div><div><div><span class="" style="white-space:pre"> </span>for (p in 1:limite ) { </div></div><div><div><span class="" style="white-space:pre">            </span>print (rbind(c( p + 8, 3), c( 5, p - 1)))</div>
</div><div><div><span class="" style="white-space:pre">     </span>} </div></div><div><div>}</div></div><div><div><br></div></div><div><div>calcula_matriz(limite = 1)</div></div></blockquote><div><br></div><div>Ainda, se A tiver vários formatos diferentes, da para usar uma gambiarra:</div>
<div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div>calcula_matriz <- function (A = 'rbind(c( p + 8, 3), c( 5, p - 1))', limite) { </div></div><div><div><span class="" style="white-space:pre">   </span>for (p in 1:limite ) { </div>
</div><div><div><span class="" style="white-space:pre">             </span>print(eval(parse(text=A)))</div></div><div><div><span class="" style="white-space:pre">  </span>} </div></div><div><div>}</div></div><div><div>calcula_matriz(limite = 1)</div>
</div></blockquote><div><br></div><div>Note que agora A é texto (ta entre aspas), e não mais uma expressão do R. Assim tu pode fazer:</div><div><br></div><div>calcula_matriz(A = 'rbind(c(p, 1/p), c(p ^ 2, log(p)))', limite = 1)</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-05 12:26 GMT-03:00 Waldelene Moura <span dir="ltr"><<a href="mailto:waldelene@yahoo.com.br" target="_blank">waldelene@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-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:10pt">
<div><span>Oi Rodrigo  entendi um pouco o que voce disse, mas nao consegui juntar com a construção da minha matriz, ja que é ela  o parâmetro da função.</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span> Estou fazendo
  umas funções no meu mestrado na area de controle em que preciso passar matrizes com incertezas politópicas,  como parametros,, no caso as incertezas é a variável p, entro tambem com a variação dessas incertezas np exemplo abaixo chamei de limite,,,</span></div>
<div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>vou detalhar um pouco mais uma função bem modesta  para voce me ajudar e dizer onde  posso aproveitar sua
 sugestão.</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>-----    programa principal
  -----------------------------------------</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>limite = 3                              #  da o limite de p , no caso p vai variar de 1  a  4  (verifique que eu não defini a variável p)          </span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span style="background-color:transparent">A =  rbind ( c( p + 8 ,     3),     </span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span style="background-color:transparent">                  c( 5      , p - 1)  </span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span style="background-color:transparent"><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
calcula_matriz(A, limite)         #  chamada da função</div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>------
   agora a funcão --------</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>calcula_matriz <-   function (A, limite) {</span><span style="background-color:transparent"> </span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>   for ( p in 1 : limite ) {                 #  só aqui definir p</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>       print (A)</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>   }</span><span style="background-color:transparent">  </span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>}</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>------------------------------------------------------------------</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>O resultado seria:</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>para p = 1           A = [9   3;  5  0]</span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><span style="font-size:10pt">para p = 2           A = [10  3;  5  1]</span> </span></div><div style="color:rgb(0,0,0);font-size:10pt;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><span style="font-size:10pt">para p = 3           A = [11  3;  5  2]</span><span style="font-size:10pt"> </span><span style="font-size:10pt"> </span></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span><br></span></div><div style="color:rgb(0,0,0);font-size:13px;font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;background-color:transparent;font-style:normal">
<span>agradeço  a  quem puder ajudar,</span></div><div class=""><div></div><div> </div><div><span style="color:rgb(0,0,255);font-style:italic;font-weight:bold;font-family:times new roman,new york,times,serif">Waldelene Moura</span><br style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">
<span style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">Analista de Sistemas</span><br style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">
<span style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">Universidade Federal do Maranhão - PROEN</span><br style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">
</div><div style="font-family:'times new roman','new york',times,serif;font-style:italic"><span style="color:rgb(0,0,255)"> </span></div> <div><br><br></div></div><div style="display:block"> <div style="font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:10pt">
 <div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:12pt"> <div dir="ltr"> <font face="Arial"> Em Quinta-feira, 5 de Junho de 2014 11:39, Rodrigo Coster <<a href="mailto:rcoster@gmail.com" target="_blank">rcoster@gmail.com</a>>
 escreveu:<br> </font> </div><div><div class="h5">  <br><br> <div><div><div><div dir="ltr">Waldelene,<div><br clear="none"></div><div>O que da pra fazer é definir o valor do parâmetro como padrão. Por exemplo:</div><div>
<br clear="none"></div><div><div>calcular_matrizes <- function(x = p + 2) {</div><div><span style="white-space:pre-wrap">      </span>p <- rnorm(1)</div>
<div><span style="white-space:pre-wrap">  </span>return(x)</div><div>}</div></div><div>calcular_matrizes()<br clear="none"></div><div><br clear="none"></div><div>Ele só vai executar o 'x = p + 2' quando a variável x for chamada, que ocorre somente depois de definir o valor de p.</div>

<div><br clear="none"></div></div><div><br clear="none"><br clear="none"><div>2014-06-05 11:27 GMT-03:00 Waldelene Moura <span dir="ltr"><<a rel="nofollow" shape="rect" href="mailto:waldelene@yahoo.com.br" target="_blank">waldelene@yahoo.com.br</a>></span>:<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-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:10pt">

<div><span></span></div><div style="display:table;width:auto;word-wrap:break-word;padding-top:12px;padding-left:0px;font-family:'Helvetica Neue','Segoe UI',Helvetica,Arial,'Lucida Grande',sans-serif">

<div><div><div style="font-family:HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,'Lucida Grande',sans-serif;font-size:10pt"><div><br clear="none"></div><div style="background-color:transparent">

<span>Olá pessoal, se alguem puder me ajudar nesse problema agradeço.</span></div><div style="background-color:transparent"><span><br clear="none"></span></div><div style="background-color:transparent">É o seguinte</div>
<div style="background-color:transparent">
<br clear="none"></div><div style="background-color:transparent">Preciso passar como parâmetro de uma função <span style="font-weight:bold">uma matriz</span> que possui nos seus </div><div style="background-color:transparent">

elementos uma variável <span style="font-weight:bold">p</span>,  sendo que essa variável p só vai assumir valores dentro da função</div><div style="background-color:transparent">chamada, <span style="font-size:10pt">exemplo,</span></div>

<div style="background-color:transparent"><br clear="none"></div><div style="background-color:transparent"><br clear="none"></div><div style="background-color:transparent">A = cbind(c(p+5, 6),</div><div style="background-color:transparent">

               c(10, p+8))</div><div style="background-color:transparent"><br clear="none"></div><div style="background-color:transparent">calcular_matrizes (A)</div><div style="background-color:transparent"><br clear="none">

</div><div style="background-color:transparent"><br clear="none"></div><div style="background-color:transparent">dentro da função <span style="font-weight:bold">calcular_matrizes</span> tenho que achar valores para essa matriz para varios valores de <span style="font-weight:bold">p</span></div>

<div style="background-color:transparent"><br clear="none"></div><div style="background-color:transparent">A pergunta é, como passar esse parâmetro, <span style="font-weight:bold">no caso a matriz A</span> na função, sem dar erro de que a variável <span style="font-weight:bold">p</span> não foi definida? (object 'p' not found).</div>

</div></div></div></div><span><font color="#888888"></font></span><div></div><div> </div><div><span style="color:rgb(0,0,255);font-style:italic;font-weight:bold;font-family:times new roman,new york,times,serif">Waldelene Moura</span><br clear="none" style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">

<span style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">Analista de Sistemas</span><br clear="none" style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">

<span style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">Universidade Federal do Maranhão - PROEN</span><br clear="none" style="color:rgb(0,0,255);font-style:italic;font-family:times new roman,new york,times,serif">

</div><div style="font-family:'times new roman','new york',times,serif;font-style:italic"><span style="color:rgb(0,0,255)"> </span></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"></div></div></div><br><br></div>  </div></div></div> </div>  </div> </div></div></blockquote></div><br></div>