<div>O que eu preciso fazer é exatamente o que o Eduardo fez, com uma modificação:</div><div><br></div><div>O $p$, ao invés de ser um número gerado aleatoriamente, é o resultado de uma função logit.</div><div><br></div><div>
Obviamente, o resultado de uma logit é um número entre 0 e 1, então a solução do Eduardo é muito próxima do que eu preciso. Mas quando eu substituo o "runif(1)" pela minha função </div><div>logística, os resultados deixam se ser entre 1 e 5.</div>
<div><br></div><div>Por que isso pode estar ocorrendo?</div><div>Aproveito e envio o código inteiro anexo.</div><div><br></div><div>Mais uma vez, muito obrigado,</div><div><br>Felipe</div><div><br></div><div><br><br><div class="gmail_quote">
2012/9/15 Fabio Mathias Corrêa <span dir="ltr"><<a href="mailto:fabio.ufla@yahoo.com.br" target="_blank">fabio.ufla@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="font-size:12pt;font-family:times new roman,new york,times,serif"><div><span>Felipe</span></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif">
<span><br></span></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif"><span>Da forma que o Eduardo fez a função está retornando valores entre  1 e 5. Não é isto o que vc quer?</span></div>
<div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif"><span><br></span></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif">
<span>O table(s) está mostrando a frequência com que os valores apareceram na simulação que ele fez.</span></div><div class="im"><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif">
<span><br></span></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif">Valeu!</div><div> </div><div>        Fábio Mathias Corrêa<br>
<br></div><div>     Universidade Estadual de Santa Cruz<br>Departamento de Ciências Exatas e da Terra - DCET</div><br><br><div>Campus Soane Nazaré de Andrade, km 16 Rodovia Ilhéus-Itabuna<br>CEP 45662-900. Ilhéus-Bahia</div>
<div><br><br></div></div><div>Tel.: 73-3680-5076<br>  <div style="font-family:'times new roman','new york',times,serif;font-size:12pt"> <div> <div dir="ltr"> <font face="Arial"><div class="im"> <hr size="1">
  <b><span style="font-weight:bold">De:</span></b> Felipe Buchbinder <<a href="mailto:felbuch@gmail.com" target="_blank">felbuch@gmail.com</a>><br> <b><span style="font-weight:bold">Para:</span></b> <a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a> <br>
 </div><b><span style="font-weight:bold">Enviadas:</span></b> Sexta-feira, 14 de Setembro de 2012 23:00<div><div class="h5"><br> <b><span style="font-weight:bold">Assunto:</span></b> Re: [R-br] Dúvida função no R<br> </div>
</div></font> </div><div><div class="h5"> <br><div><div>Eduardo e Fábio,</div><div>Muito obrigado pela ajuda. Se o problema não está no which, alguma idéia de onde ele possa estar?</div><div>A função <i>resp</i> já retorna resultados absurdos, então o problema tem que estar nela. Só não vejo onde....<br>

<br><div>2012/9/14 Eduardo Leoni <span dir="ltr"><<a rel="nofollow" href="mailto:e.leoni@gmail.com" target="_blank">e.leoni@gmail.com</a>></span><br><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

E o problema não está no which...<div><br></div><div><div>resp <- function() {</div><div>  k <- 5</div><div><div>  p.vec = NULL  </div><div>  for(category in 1:k)  # k = 5</div><div>    {</div></div><div>
      p = runif(1)</div>

<div>      p.vec = c(p.vec,p)</div><div>    }</div><div>  ##Generates a random number</div><div>  seed<-runif(1,0.2,0.8)</div><div>  ##Selects an answer</div><div><div>  temp = which ( p.vec>seed ) </div>
<div>  if( length (temp) > 0 ) { resp = max (temp) } else { resp = 1 }</div>

<div>  resp</div><div>}</div></div><div>s <- NULL</div><div>for (i in 1:100) {</div><div>  s <- c(s, resp())</div><div>}</div><div>> table(s)</div><div>>s</div><div>> 1  2  3  4  5 </div><div>>15  6 10 21 48 </div>

<div><div>

<div><br></div><div><br></div><br><div>2012/9/14 Eduardo Leoni <span dir="ltr"><<a rel="nofollow" href="mailto:e.leoni@gmail.com" target="_blank">e.leoni@gmail.com</a>></span><br><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



ifelse quando length é igual a 1 não é recomendável:<div><br></div><div><div>> system.time(replicate(10000, if(1>0) {1} else { 0}))</div><div>   user  system elapsed </div><div>  0.028   0.000   0.030 </div><div>> system.time(replicate(10000, ifelse(1>0, 1, 0)))</div>




<div>   user  system elapsed </div><div>  0.224   0.000   0.224 </div><div><div><div>> </div><div><br></div><br><div>2012/9/14 Fabio Mathias Corrêa <span dir="ltr"><<a rel="nofollow" href="mailto:fabio.ufla@yahoo.com.br" target="_blank">fabio.ufla@yahoo.com.br</a>></span><br>




<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:'times new roman','new york',times,serif"><div><span>Felipe, </span></div><div style="font-style:normal;font-size:16px;background-color:transparent">




<span><br></span></div><div style="font-style:normal;font-size:16px;background-color:transparent"><span>Realmente, o if resolve o problema.</span></div>



<div style="font-style:normal;font-size:16px;background-color:transparent"><span><br></span></div><div style="font-style:normal;font-size:16px;background-color:transparent">



<span>Só uma dica, troque o if por </span></div><div style="font-style:normal;font-size:16px;background-color:transparent"><span><br></span></div><div style="font-style:normal;font-size:16px;background-color:transparent">




<span>ifelse(length(temp)>0,resp=max(temp), resp=1)</span></div><div style="font-style:normal;font-size:16px;background-color:transparent"><span><br>



</span></div><div style="font-style:normal;font-size:16px;background-color:transparent"><span>Quanto ao which, vc precisa corrgir!</span></div><div>
<div style="font-style:normal;font-size:16px;background-color:transparent"><span><br></span></div><div style="font-style:normal;font-size:16px;background-color:transparent">



<span>Valeu!</span></div><div style="font-style:normal;font-size:16px;background-color:transparent"><span><br></span></div><div> </div><div>        Fábio Mathias Corrêa<br>



<br></div><div>     Universidade Estadual de Santa Cruz<br>Departamento de Ciências Exatas e da Terra - DCET</div><br><br><div>Campus Soane Nazaré de Andrade, km 16 Rodovia Ilhéus-Itabuna<br>CEP 45662-900. Ilhéus-Bahia</div>




<div><br><br></div></div><div>Tel.: 73-3680-5076<br>  <div style="font-size:12pt"> <div style="font-size:12pt">



 <div dir="ltr"> <font face="Arial"><div> <hr size="1">  <b><span style="font-weight:bold">De:</span></b> Felipe Buchbinder <<a rel="nofollow" href="mailto:felbuch@gmail.com" target="_blank">felbuch@gmail.com</a>><br>
 <b><span style="font-weight:bold">Para:</span></b> <a rel="nofollow" href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a> <br>



 </div><b><span style="font-weight:bold">Enviadas:</span></b> Sexta-feira, 14 de Setembro de 2012 0:12<div><div><br> <b><span style="font-weight:bold">Assunto:</span></b> Re: [R-br] Dúvida função no R<br> </div>
</div></font> </div><div><div> <br><div>Fábio,<div><br></div><div>Muito obrigado pela ajuda. Mas o <i>if </i>já não dá conta do caso em que p.vec não possui um elemento maior do que seed? E como p.vec é construido dentro de um loop que adiciona um elemento durante <i>k</i> iterações, como ele pode ter mais do que <i>k</i> elementos? Eu achava que já tinha controlado para evitar esses casos... não?</div>





<div><br></div><div>mais uma vez obrigado,</div><div><br></div><div>Felipe<br><br><div>2012/9/13 Fabio Mathias Corrêa <span dir="ltr"><<a rel="nofollow" href="mailto:fabio.ufla@yahoo.com.br" target="_blank">fabio.ufla@yahoo.com.br</a>></span><br>





<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:12pt"><div><div>O problema está nesta parte aqui!</div>




<div><br></div><div style="font-style:normal;font-size:16px;background-color:transparent">Nem sempre o vetor  p.vec possui um elemento maior que o seed, e quando isto ocorre retorna interger(0)</div>
<div style="font-style:normal;font-size:16px;background-color:transparent"><br></div><div style="font-style:normal;font-size:16px;background-color:transparent">
Outro problema é que o which pega a posição do elemento, então, quando vc pega o max(temp), se o vetor tem tamanho 20, por exemplo, ele vai retornar o 20 e não o
 elemento.</div><div style="font-style:normal;font-size:16px;background-color:transparent"><br></div><div style="font-style:normal;font-size:16px;background-color:transparent">
Precisa corrigir ai!</div><div style="font-style:normal;font-size:16px;background-color:transparent"><br></div><div style="font-style:normal;font-size:16px;background-color:transparent">
 temp = which(p.vec>seed) #we use this temporary vector in order to avoid warnings should its length be zero</div><div><span style="white-space:pre-wrap">               </span>print(temp)</div><div> 
 if(length(temp)>0){resp=max(temp)}else{resp=1}</div><div style="font-size:12pt"><br></div></div><div><div style="font-size:12pt">
Valeu! </div><div style="font-size:12pt"><br></div><div style="font-size:12pt">        Fábio Mathias Corrêa<br>
<br></div><div style="font-size:12pt">     Universidade Estadual de Santa Cruz<br>Departamento de Ciências Exatas e da Terra - DCET</div><br><br><div style="font-size:12pt">
Campus Soane Nazaré de Andrade, km 16 Rodovia Ilhéus-Itabuna<br>CEP 45662-900. Ilhéus-Bahia</div><div><br><br></div></div><div style="font-size:12pt">Tel.: 73-3680-5076<br>
  <div style="font-size:12pt"> <div style="font-size:12pt"> <div dir="ltr"> <font face="Arial"><div>
 <hr size="1">  <b><span style="font-weight:bold">De:</span></b> Felipe Buchbinder <<a rel="nofollow" href="mailto:felbuch@gmail.com" target="_blank">felbuch@gmail.com</a>><br> <b><span style="font-weight:bold">Para:</span></b> <a rel="nofollow" href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a> <br>





 </div><b><span style="font-weight:bold">Enviadas:</span></b> Quinta-feira, 13 de Setembro de 2012 15:24<br> <b><span style="font-weight:bold">Assunto:</span></b> Re: [R-br] Dúvida função no R<br> </font> </div><div><div>





 <br><div>Obrigado pela referência,<div><br></div><div>Preparei um CMR que envio anexo.</div><div><br></div><div>Mais uma vez,
 obrigado </div><div>Felipe<br><br><div>2012/9/13 FHRB Toledo <span dir="ltr"><<a rel="nofollow" href="mailto:fernandohtoledo@gmail.com" target="_blank">fernandohtoledo@gmail.com</a>></span><br>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Felipe,</div><div><br></div>Para CMR, consulte: <a rel="nofollow" href="https://gist.github.com/1088208" target="_blank">https://gist.github.com/1088208</a><div>






<br></div><div>att,</div><div>FH<div><div><br><br><div>2012/9/13 Felipe Buchbinder <span dir="ltr"><<a rel="nofollow" href="mailto:felbuch@gmail.com" target="_blank">felbuch@gmail.com</a>></span><br>

<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">O k foi definido no início do código, fora da função, como k = 5.<div><br></div><div>Desculpe a ignorância, mas o que é um CMR? Como eu posso fazer um para enviar à lista?</div>







<div><br></div><div>Obrigado pela disposição,</div>
<div><br>Felipe<div><div><br><br><div>2012/9/13 Leonard de Assis <span dir="ltr"><<a rel="nofollow" href="mailto:assis.leonard@gmail.com" target="_blank">assis.leonard@gmail.com</a>></span><br><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">









  
    
  
  <div>
    <div>Onde foi definido o k?<br>
      <pre>[]s
Leonard de Assis
assis <dot> leonard <at> gmail <dot> com
</pre>
      Em 13/09/2012 12:56, Felipe Buchbinder escreveu:<br>
    </div>
    <blockquote type="cite"><div><div>Prezados professores,
      <div><br>
      </div>
      <div>Estou com um problema em uma função no R.</div>
      <div>A função é a seguinte:</div>
      <div><br>
      </div>
      <blockquote style="margin:0 0 0 40px;border:none;padding:0px">
        <blockquote style="margin:0 0 0 40px;border:none;padding:0px">
          <blockquote 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">resp
            <- function(subject,item,trait)<br>
            {<br>
              <br>
              p.vec = NULL<br>
              <br>
              for(category in 1:k)  # k = 5<br>
              {<br>
                p = ogive ( theta[subject,trait] , a[item] ,
            b[item,category] , D )    # aqui é uma logit (D=1) ou probit
            (D=1.7)<br>
                p.vec = c(p.vec,p)<br>
              }<br>
              <br>
              #Generates a random number<br>
              <br>
              seed<-runif(1,0.2,0.8)<br>
              <br>
              #Selects an answer<br>
              <br>
              temp = which ( p.vec>seed ) <br>
              if( length (temp) > 0 ) { resp = max (temp) } else {
            resp = 1 }<br>
              resp<br>
            }</blockquote>
        </blockquote>
      </blockquote>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>Esta função está inserida em um loop e deveria me retornar um
        número inteiro entre 1 e 5.</div>
      <div>Da primeira vez, isto acontece.</div>
      <div>Mas a partir da segunda, ela começa a me retornar valores
        como 20, 16,...</div>
      <div><br>
      </div>
      <div>Alguma idéia de porque isso acontece???</div>
      <div><br>
      </div>
      <div>Desde já, obrigado!</div>
      <div><br>
      </div>
      <div>Felipe Buchbinder</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><div><pre>_______________________________________________
R-br mailing list
<a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a>
<a rel="nofollow" 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>
Leia o guia de postagem (<a rel="nofollow" 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.</pre>
    </div></blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
R-br mailing list<br>
<a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a rel="nofollow" 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 rel="nofollow" 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></div></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a rel="nofollow" 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 rel="nofollow" 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></div></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a rel="nofollow" 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 rel="nofollow" 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></div>
</div><br>_______________________________________________<br>R-br mailing list<br><a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br><a rel="nofollow" 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 rel="nofollow" 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><br> </div></div></div> </div>  </div></div>




</div><br>_______________________________________________<br>

R-br mailing list<br>
<a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a rel="nofollow" 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 rel="nofollow" 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></div>
</div><br>_______________________________________________<br>R-br mailing list<br><a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br><a rel="nofollow" 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 rel="nofollow" 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><br> </div></div></div> </div>  </div></div>
</div><br>_______________________________________________<br>




R-br mailing list<br>
<a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a rel="nofollow" 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 rel="nofollow" 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></div></div></div>
</blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a rel="nofollow" href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a rel="nofollow" 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 rel="nofollow" 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></div>
</div><br>_______________________________________________<br>R-br mailing list<br><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">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><br> </div></div></div> </div>  </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></div>