# [R] Newbie: Simple loops: complex troubles

projection83 mkurowski at gmail.com
Thu Apr 5 03:35:58 CEST 2007

```This helped a lot. Thank you so much - im now able to get some basic stuff
moving around in R!

Petr Klasterecky wrote:
>
> Not sure whether this is exactly and everything you want, but at least
> it may give you some ideas how to proceed. You do not need loops at all:
>
> Let's try a simplified example with 3 samples, each of length 10 (just
> for printing purposes):
>
> m <- c(1,2,3)
> v <- c(1,4,9)
> n <- 10
> means <- rep(m,each=n)
> vars <- rep(v,each=n)
> means
>   [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3
> vars
>   [1] 1 1 1 1 1 1 1 1 1 1 4 4 4 4 4 4 4 4 4 4 9 9 9 9 9 9 9 9 9 9
>
> numbers <- matrix(rnorm(length(means), mean=means, sd=sqrt(vars)),
> nrow=n, byrow=F)
> numbers
>              [,1]       [,2]      [,3]
>   [1,]  0.9721407  0.4510903 -2.880967
>   [2,] -0.4834124 -2.7958993 -1.368037
>   [3,]  1.6871736 -0.6717009 -3.268698
>   [4,]  0.9738312  3.1919293  3.982135
>   [5,]  0.8032162  1.0397078  7.227974
>   [6,] -0.1606657  2.6339503  5.873210
>   [7,]  0.5786295 -0.3589869  4.194425
>   [8,]  0.9909184  2.0622899  6.432129
>   [9,]  3.1687842  1.9765014  3.788201
> [10,]  1.4814704  3.3024049  4.194628
>
> colnames(numbers) <- paste('Ux',1:length(m),sep='')
> numbers
>               Ux1        Ux2       Ux3
>   [1,]  0.9721407  0.4510903 -2.880967
>   [2,] -0.4834124 -2.7958993 -1.368037
>   [3,]  1.6871736 -0.6717009 -3.268698
>   [4,]  0.9738312  3.1919293  3.982135
>   [5,]  0.8032162  1.0397078  7.227974
>   [6,] -0.1606657  2.6339503  5.873210
>   [7,]  0.5786295 -0.3589869  4.194425
>   [8,]  0.9909184  2.0622899  6.432129
>   [9,]  3.1687842  1.9765014  3.788201
> [10,]  1.4814704  3.3024049  4.194628
>
> Now your random vectors are in columns of 'numbers' and you can work
> with them using indexing.
>
> Petr
>
> projection83 napsal(a):
>> I am used to java (well, i dont remember it really well, but anyway)
>>
>> I have having a really difficult time making simple loops to work. I got
>> the
>> following to work:
>>
>>          ##
>> 	##Creates objects Ux1, Ux2, Ux2 etc. that  all contain n numbers in a
>> random distribution
>> 	##
>>  	m<-c(m1,m2,m3,m4,m5,m6,m7,m8,m9,m10)#these are defined as numbers
>> (means)
>> 	v<-c(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10)#these are defined as numbers
>> (variances)
>>         n<-50
>> 	for(k in 1:g)
>> 	{
>> 		assign( paste("Ux", k, sep=""), rnorm( n  ,
>> assign(paste("m",1,sep=""),m[k])   ,   assign(paste("m",1,sep=""),v[k])
>> )
>> )
>> 	}
>>
>>
>> The above seems like a lot of work for such a simple feat, no?
>>
>> Also, I CANNot get the following to work in a loop manor:
>>
>>         Ux1i<-as.integer(Ux1)
>> 	Ux2i<-as.integer(Ux2)
>> 	Ux3i<-as.integer(Ux3)
>>
>> or
>>
>> 	Sx1<-sort(Ux1i)
>> 	Sx2<-sort(Ux2i)
>> 	Sx3<-sort(Ux3i)
>>
>> Maybe I am just not using matrixes enough? but even that seems quite a
>> lot
>> more complex than calling x<-matrix() then grabbing values by
>> x[j][k]...(java style if i remember correctly). the matrix help in R
>> dosnt
>> make much sense to me. And also i am not sure why numeric() dosnt make
>> you
>> define length before you use it, yet matrix() does.  Is there some other
>> funciton that i should be using to make length not an issue?
>>
>>
>> All in all, I dont know if i am going about this loop stuff a reaaaaly
>> round
>> about way - Any help would make me much less loopy:Pthanks
>>
>>
>>
>
> --
> Petr Klasterecky
> Dept. of Probability and Statistics
> Charles University in Prague
> Czech Republic
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help