Try this: kronecker(t(rep(1:0, c(lagnum, 3-lagnum))), diag(K))
On 5/8/07, Leeds, Mark (IED) <[EMAIL PROTECTED]> wrote: > That's a good idea : I didn't realize that my matrices would look so bad > in the final email. All I want > To do is output 1's in the diagonal elements and zero's everywhere else > but the matrix is not square so by diagonals I > Really mean if > > Lagnum = 1 then the elements are (1,1), (2,2), (3,3),(4,4),(5,5),(6,6) > > Lagnum = 2 then the elements (1,1), (2,2), > (3,3),(4,4),(5,5),(6,6),(7,1),(8,2),(9,3),(10,4),(11,5),(12,6) > > Lagnum = 3 then the elements (1,1), (2,2), > (3,3),(4,4),(5,5),(6,6),(7,1),(8,2),(9,3),(10,4),(11,5),(12,6),(13,1),(1 > 4,2),(15,3),(16,4),(17,5), > (18,6) > > And lagnum always has to be greater than or equal to 1 and less than or > equal to (number of cols/number of rows ). Thanks > For your advice. > > > -----Original Message----- > From: Bert Gunter [mailto:[EMAIL PROTECTED] > Sent: Tuesday, May 08, 2007 5:34 PM > To: Leeds, Mark (IED); r-help@stat.math.ethz.ch > Subject: RE: [R] Looking for a cleaner way to implement a setting > certainindices of a matrix to 1 function > > Suggestion: > > You might make it easier for folks to help if you explained in clear and > simple terms what you are trying to do. Code is hard to deconstruct. > > > Bert Gunter > Genentech Nonclinical Statistics > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Leeds, Mark (IED) > Sent: Tuesday, May 08, 2007 2:22 PM > To: r-help@stat.math.ethz.ch > Subject: [R] Looking for a cleaner way to implement a setting > certainindices of a matrix to 1 function > > 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}} > > ______________________________________________ > R-help@stat.math.ethz.ch 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. > -------------------------------------------------------- > > This is not an offer (or solicitation of an offer) to buy/se...{{dropped}} > > ______________________________________________ > R-help@stat.math.ethz.ch 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. > ______________________________________________ R-help@stat.math.ethz.ch 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.