Hola,
Si he entendido bien lo que dices, en R se puede hacer de forma más fácil
utilizando su capacidad de "vectorizar".
De esta forma consigues tener en una matriz "mi.mat" las 20 muestras
aleatorias.
set.seed(1234567)
mi.mat<-matrix(rep(rnorm(5,30, 1.5), 20), nrow=4, ncol=5)
> mi.mat
[,1] [,2] [,3] [,4] [,5]
[1,] 30.23506 29.98723 27.97380 31.09601 32.06072
[2,] 32.06072 30.23506 29.98723 27.97380 31.09601
[3,] 31.09601 32.06072 30.23506 29.98723 27.97380
[4,] 27.97380 31.09601 32.06072 30.23506 29.98723
¿Cuál es el problema con tu aproximación?.
Pues básicamente que en cada ciclo de tu bucle while, el valor de Y se
actualiza.
Para poder obtener una matrix con diferentes filas deberías de haber
utilizado algún tipo de índice sobre ella, del tipo Y[i,]=....
Pero vaya, es más compacto y sencillo utilizar la función "rep()".
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 24 de agosto de 2012 06:28, Lex B <bernalm.alexander@gmail.com>
escribió:
> Buenas noches, soy nuevo en el uso de R, y se me ha presentado una duda
> grande supongo que debe ser sencillo para mi nivel.
>
> lo que intento es generar 20 muestras aleatoria con distribución normal, y
> que los valores generados queden asignados en vectores, yo he intentado
> crear la siguiente secuencia pero me genera los datos como vectores
> independiente cada uno y de unica entrada, pero requiero que cada uno sea
> un vector de 3 entradas y poder manipularlos para crcear una matriz con
> ellos, la secuencia que hice fue:
>
> m=30
> desv=1.5
> i = 0
> while(i<20){
> i = i +1
> X=rnorm(5,m,desv)
>
f=c("X1","X2","X3","X4","X5")
> Y=matrix(X, ncol = 5)
> colnames(Y) = f
> T1 = 1/5*sum(Y[1,])
> T3 = 1/10*(Y[,1] + 2*Y[,1] + 3*Y[,1] + 2*Y[,1] + Y[,1])
> print(noquote(paste(i, T1, T3)))
> }
>
> y al correrlo genera lo siguiente:
>
> [1] 1 29.6580044989442 28.4648427289512
> [1] 2 29.2852281959907 25.6234115083671
> [1] 3 30.3304891044586 27.8308812160942
> [1] 4 30.9665429781098 28.4608524614685
> [1] 5 28.528894567099 24.8889365719721
> [1] 6 30.7291516512659 28.0183321321513
> [1] 7 31.3888326565555 27.9144795179306
> [1] 8 31.1867860202239 27.8074224110316
> [1] 9 30.6939126562443 27.3203264151207
> [1] 10 30.0426023962733 27.4697502868791
> [1] 11 31.3978479842576 27.1130006605964
> [1] 12 29.6660619654119 25.5787390791236
> [1] 13 29.6483876437844 26.946598898624
> [1] 14 30.6974869678901 27.4884828509993
> [1] 15 29.6428162823001 26.6229445858976
> [1] 16 30.0978518730352 26.942477830931
> [1] 17 29.5552471077553 28.9035426270582
> [1] 18 30.3459851908247 26.0684050682985
> [1] 19 29.8992368156068 26.5401031908471
> [1] 20 30.133280269122 27.32660356603
>
> debo seguir usando while, o debo usar algun metodo mas efectivo?
>
> --
>
> ALEXANDER BERNAL MUÑOZ
> U SANTO TOMAS - ESTADÍSTICA - BOGOTÁ
>
> [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
[[alternative HTML version deleted]]