[R] creating a certain type of matrix

Taka Matzmoto sell_mirage_ne at hotmail.com
Tue Feb 7 07:07:11 CET 2006


Hi R users

I like to generate a certain type of  matrix.
If there are 10 variables, the matrix will have nrow=10, ncol=((10/2))/5+1. 
so the resulting matrix's dimension 10 by 2. If there are 50 variables the 
dimension of the resulting matrix will be 50 by 6.

The arrangement of elements of this matrix is important to me and I can't 
figure out how to arrange elements.

If I have 20 variables. The resulting matrix will be 20 by 3
The first half of first column of the matrix will be 1s. The all elements on 
the second half of the first column of the matrix will be random numbers 
coming from rnorm(1,0,1). The first half of the second column of the matrix 
will be zeros. The first five elements of the second half of the second 
column of the matrix will be random numbers coming from rnorm(1,0,1). After 
that, the remaining elements of the second half will be zeros. The first 
half of the third column of the matrix will be zeors. The first five 
elements of the second half of the third column will be zeros too and then 5 
random numbers coming from rnorm(1,0,1).

If there are 40 variables the resulting matrix will be 40*5
The first half of first column of the matrix will be 1s. The all elements on 
the second half of the first column of the matrix will be random numbers 
coming from rnorm(1,0,1).

The first half of the second column of the matrix will be zeros. The first 
five elements of the second half of the second column of the matrix will be 
random numbers coming from rnorm(1,0,1). After that, the remaining elements 
of the second half will be zeros.

The first half of the third column of the matrix will be zeors. The first 
FIVE elements of the second half of the third column will be zeros too and 
then 5 random numbers coming from rnorm(1,0,1) and then the rest of elements 
of the third column will be zeros.

The first half of the fourth column of the matrix will be zeors.The first 
TEN elements of the second half of the fourth column will be zeros too and 
then 5 random numbers coming from rnorm(1,0,1) and then the rest of elements 
of the third column will be zeros.

The first half of the fifth column of the matrix will be zeors.The first 
FIFTEEN elements of the second half of the fourth column will be zeros too 
and then 5 random numbers coming from rnorm(1,0,1).

I tried to create 10 different functions ( one for 10, 20, 30, 40, .... , 
100 variables) but it's not efficient.

Any help or advice for creating one function that can do all 10 kind of 
variable cases would be appreciated.

Thans in advance

Taka




More information about the R-help mailing list