En los últimos días me han preguntado 2 veces como generar números aleatorios entre 2 valores en SAS. Realmente la manera de generar estás secuencias de números aleatorios va más allá del software que estes utilizando, puede ser SAS, Ms Excel, Visual Basic, Java etc etc. La base es la misma. Aquí tienen un pequeño ejemplo.
La función o ecuación que vamos a utilizar es la siguiente:
Int((MaxValue - MinValue + 1) * Rnd) + MinValue
donde, MaxValue y MinValue son los valores extremos de cadena o secuencia de números aleatorios que se desean generar y Rnd es la distribución que deseamos utilizar, puede ser Uniforme, Normal, Poisson, Binomial, Weibull etc.
El siguiente ejemplo genera 100 números aleatorios uniformes entre 100 y 1000.
Data random;
do i=1 to 100;
secuencia=Int((1000 - 100 + 1) * ranuni(058212)) + 100;
output;
end;
run;
SASludos
Alberto
La función o ecuación que vamos a utilizar es la siguiente:
Int((MaxValue - MinValue + 1) * Rnd) + MinValue
donde, MaxValue y MinValue son los valores extremos de cadena o secuencia de números aleatorios que se desean generar y Rnd es la distribución que deseamos utilizar, puede ser Uniforme, Normal, Poisson, Binomial, Weibull etc.
El siguiente ejemplo genera 100 números aleatorios uniformes entre 100 y 1000.
Data random;
do i=1 to 100;
secuencia=Int((1000 - 100 + 1) * ranuni(058212)) + 100;
output;
end;
run;
SASludos
Alberto

1 comentarios:
Hola. muchas gracias. me has salvado la vida. Bueno, no tanto, pero sí me has ayudado mucho. Saludos.!
implementado en java:
public int[] random(int n, int low, int high) {
int[] resultado = new int[n];
for (int i = 0; i < resultado.length; i++) {
resultado[i] = (int) ((high - low + 1) * Math.random() + low);
}
return resultado;
}
Publicar un comentario en la entrada