I wrote an ugly algorithm to set certain elements of a matrix to 1
without looping and below works and you can see what
The output is below the code.

K<-6
lagnum<-2

restrictmat<-matrix(0,nrow=K,ncol=K*3)
restrictmat[((col(restrictmat) - row(restrictmat) >= 0 ) &
(col(restrictmat)-row(restrictmat)) %% K == 0)]<-1
restrictmat[,(lagnum*K+1):ncol(restrictmat)]<-0

 restrictmat
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[,13] [,14] [,15] [,16] [,17] [,18]
[1,]    1    0    0    0    0    0    1    0    0     0     0     0
0     0     0     0     0     0
[2,]    0    1    0    0    0    0    0    1    0     0     0     0
0     0     0     0     0     0
[3,]    0    0    1    0    0    0    0    0    1     0     0     0
0     0     0     0     0     0
[4,]    0    0    0    1    0    0    0    0    0     1     0     0
0     0     0     0     0     0
[5,]    0    0    0    0    1    0    0    0    0     0     1     0
0     0     0     0     0     0
[6,]    0    0    0    0    0    1    0    0    0     0     0     1
0     0     0     0     0     0

For lagnum equals 1 , it also works :

 restrictmat
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[,13] [,14] [,15] [,16] [,17] [,18]
[1,]    1    0    0    0    0    0    0    0    0     0     0     0
0     0     0     0     0     0
[2,]    0    1    0    0    0    0    0    0    0     0     0     0
0     0     0     0     0     0
[3,]    0    0    1    0    0    0    0    0    0     0     0     0
0     0     0     0     0     0
[4,]    0    0    0    1    0    0    0    0    0     0     0     0
0     0     0     0     0     0
[5,]    0    0    0    0    1    0    0    0    0     0     0     0
0     0     0     0     0     0
[6,]    0    0    0    0    0    1    0    0    0     0     0     0
0     0     0     0     0     0

But I am thinking that there has to be a better way particularly because
I'll get an error if I set lagnum to 3. 
Any improvements or total revampings are appreciated. The number of
columns will always be a multiple of the number of rows
So K doesn't have to be 6. that was just to show what the commands do.
thanks.
--------------------------------------------------------

This is not an offer (or solicitation of an offer) to buy/se...{{dropped}}

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to