
29 Jul
2014
29 Jul
'14
02:14
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!