<div dir="ltr">um exercicio pra matar saudade de recursao...<div><br></div><div><div>f <- function(n, menor, maior, x, s){</div><div>    obs <- rnorm(n, x, s)</div><div>    obs <- obs[obs > menor & obs < maior]</div>

<div>    nin <- length(obs)</div><div>    if (nin == n){</div><div>        return(obs)</div><div>    }else{</div><div>        return(c(obs, f(n-nin, menor, maior, x, s)))</div><div>    }</div><div>}</div></div><div><br>

</div><div>system.time(res <- f(10000, 2, 3, 0, 1))<br></div><div><div>##   user  system elapsed </div><div>##  0.063   0.001   0.064 </div></div><div><div>length(res)</div><div>## [1] 10000</div><div>range(res)</div>
<div>
## [1] 2.000013 2.999675</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Em 28 de julho de 2014 23:34, FHRB Toledo <span dir="ltr"><<a href="mailto:fernandohtoledo@gmail.com" target="_blank">fernandohtoledo@gmail.com</a>></span> escreveu:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Não seria o caso de você obter esses valores analiticamente, ao invés de usar simulação? Veja a documentação da função pnorm().<div>

<br></div><div>att,</div><div>FH</div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">2014-07-28 21:14 GMT-05:00 Marcos Bissoli <span dir="ltr"><<a href="mailto:mbissoli@gmail.com" target="_blank">mbissoli@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div class="h5">
<div dir="ltr">Boa noite a todos,<div><br></div><div>Preciso gerar uma sequência de números aleatórios, de uma distribuição normal. No entanto, a função <rnorm> não permite definir limites mínimo e máximo para o vetor de dados. Assim, criei uma função para tal fim:</div>



<div><br></div><div><div>>Gerador.Aleatorio <- function(n,menor,maior,x,s)</div><div>+{</div><div>+  dados <- rnorm(n,x,s)</div><div>+  while ((min(dados)<menor)|(max(dados)>maior))</div><div>+  {</div><div>



+    dados <- rnorm(n,x,s)</div><div>+  }</div><div>+  dados <- dados</div><div>+  print(dados)</div><div>+}</div><div><br></div><div>Onde:</div><div>- n é o número de valores que quero gerar</div><div>- menor é o limite mínimo do vetor</div>



<div>- maior é o limite máximo do vetor</div><div>- x é a média do vetor</div><div>- s é o desvio padrão do vetor</div><div><br></div><div>O problema é que, como usei um laço ("loop"), o custo de tempo computacional dessa função tornou-a simplesmente impraticável. Até 100 valores eu consegui gerar. Mas agora tentei com 284 e já jantei, fumei, tratei de assuntos familiares e... Nada! E minha demanda, na verdade, é para gerar mais de 1500 valores, simulando estudo epidemiológico observacional, a partir de valores já descritos em um estudo piloto que realizei (ou seja, eu tenho já estimativas de n, mínimo, máximo, média e desvio padrão).</div>



<div><br></div><div>Há alguma função, pacote ou sintaxe que torne isso possível? E qual seriam esses "limites do custo computacional"?</div><div><br></div><div>Grato desde já por qualquer ajuda.</div><div><br></div>



<div>Abraços fraternos,</div><div><br></div>-- <br><div dir="ltr">MARCOS BISSOLI<br>Faculdade de Nutrição<br>Universidade Federal de Alfenas<br><br>E-mail: <a href="mailto:mbissoli@gmail.com" target="_blank">mbissoli@gmail.com</a><br>



Twitter: #mbissoli<div>Facebook: <a href="https://www.facebook.com/MarcosBissoli" target="_blank">https://www.facebook.com/MarcosBissoli</a><br><br>Alfenas, Minas Gerais, Brasil<br><br><br>*****Pense na Natureza antes de Imprimir*****<br>



Divulgue ON-LINE<br><br>Eu apoio a ENEN "na luta por um Brasil sem fome"<br><br>"por ĉiu popolo ties propran lingvon, por ĉiuj popoloj la esperantan"<br>(para cada povo sua própria língua, para todos os povos o Esperanto)</div>



<div><br></div><div>E nunca votarei no PSDB/DEM!</div></div>
</div></div>
<br></div></div>_______________________________________________<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></blockquote></div><br></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"><a href="http://about.me/benilton" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:14px;font-family:proxima-nova-1,proxima-nova-2,Tahoma,Helvetica,Verdana,sans-serif;vertical-align:baseline;color:rgb(43,130,173);text-decoration:none;line-height:18.200000762939453px" target="_blank"><table border="0" cellpadding="0" cellspacing="0" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;border-spacing:0px">

<tbody style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline">

<td colspan="3" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;height:30px"> </td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline">

<td align="left" valign="top" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:top;line-height:1"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline">

<img src="http://d13pix9kaak6wt.cloudfront.net/signature/me-badge.png" alt="Benilton Carvalho on about.me" width="48" height="48" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;display:block"></div>

</td><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;width:8px"> </td><td align="left" valign="middle" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:middle;height:48px;line-height:0.9">

<div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:bold;font-style:inherit;font-size:18px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline;line-height:1;color:rgb(51,51,51)">

Benilton Carvalho</div><div style="margin:2px 0px 0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-size:12px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline">

about.me/benilton</div></td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td colspan="3" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;height:20px">

 </td></tr></tbody></table></a></div>
</div>