
29 Jul
2014
29 Jul
'14
03:18
um exercicio pra matar saudade de recursao... f <- function(n, menor, maior, x, s){ obs <- rnorm(n, x, s) obs <- obs[obs > menor & obs < maior] nin <- length(obs) if (nin == n){ return(obs) }else{ return(c(obs, f(n-nin, menor, maior, x, s))) } } system.time(res <- f(10000, 2, 3, 0, 1)) ## user system elapsed ## 0.063 0.001 0.064 length(res) ## [1] 10000 range(res) ## [1] 2.000013 2.999675 Em 28 de julho de 2014 23:34, FHRB Toledo <fernandohtoledo@gmail.com> escreveu: > 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(). > > att, > FH > > > 2014-07-28 21:14 GMT-05:00 Marcos Bissoli <mbissoli@gmail.com>: > >> Boa noite a todos, >> >> 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: >> >> >Gerador.Aleatorio <- function(n,menor,maior,x,s) >> +{ >> + dados <- rnorm(n,x,s) >> + while ((min(dados)<menor)|(max(dados)>maior)) >> + { >> + dados <- rnorm(n,x,s) >> + } >> + dados <- dados >> + print(dados) >> +} >> >> Onde: >> - n é o número de valores que quero gerar >> - menor é o limite mínimo do vetor >> - maior é o limite máximo do vetor >> - x é a média do vetor >> - s é o desvio padrão do vetor >> >> 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). >> >> Há alguma função, pacote ou sintaxe que torne isso possível? E qual >> seriam esses "limites do custo computacional"? >> >> Grato desde já por qualquer ajuda. >> >> Abraços fraternos, >> >> -- >> MARCOS BISSOLI >> Faculdade de Nutrição >> Universidade Federal de Alfenas >> >> E-mail: mbissoli@gmail.com >> Twitter: #mbissoli >> Facebook: https://www.facebook.com/MarcosBissoli >> >> Alfenas, Minas Gerais, Brasil >> >> >> *****Pense na Natureza antes de Imprimir***** >> Divulgue ON-LINE >> >> Eu apoio a ENEN "na luta por um Brasil sem fome" >> >> "por ĉiu popolo ties propran lingvon, por ĉiuj popoloj la esperantan" >> (para cada povo sua própria língua, para todos os povos o Esperanto) >> >> E nunca votarei no PSDB/DEM! >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. > -- [image: Benilton Carvalho on about.me] Benilton Carvalho about.me/benilton <http://about.me/benilton>