On Jul 4, 2009, at 11:17 AM, William Simpson wrote:

Can anybody please tell me a good way to do the following?

Given a vector, number of rows and number of columns, return a matrix
as follows. Easiest to give an example:

x=c(1,2), nrow=5, ncol=4

You ought to separate those assignments with semicolons:

x=c(1,2); nrow=5; ncol=4
> MM <- matrix( c(x,rep(0, nrow-length(x)+1)),  nrow=nrow, ncol=ncol)
Warning message:
In matrix(c(x, rep(0, nrow - length(x) + 1)), nrow = nrow, ncol = ncol) : data length [6] is not a sub-multiple or multiple of the number of rows [5]
> MM
     [,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    2    1    0    0
[3,]    0    2    1    0
[4,]    0    0    2    1
[5,]    0    0    0    2

OR------

> M2 <- diag( , nrow=5, ncol=4)
> M2[row(M2) == col(M2)+1] <- 2
> M2
     [,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    2    1    0    0
[3,]    0    2    1    0
[4,]    0    0    2    1
[5,]    0    0    0    2


return the matrix:

  1 0 0 0
  2 1 0 0
  0 2 1 0
  0 0 2 1
  0 0 0 2

Thanks very much for any help!
Bill

______________________________________________

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help@r-project.org 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