Re: [Rd] diag() has a bug (PR#13702)

2009-05-15 Thread Michael Spiegel
The intent of diag(foo, 2, 2) was to return a matrix that is a 2 x 2 matrix which contains only the diagonal entries of the matrix foo. I can't do diag(foo) because this returns a vector. I could reach my goal with matrix(diag(foo), nrow = nrow(foo), ncol = ncol(foo)). If this is not a

Re: [Rd] diag() has a bug (PR#13702)

2009-05-15 Thread Michael Spiegel
Aha. Yes, it would. Thank you. However the error message is still incorrect. On Thu, May 14, 2009 at 3:35 PM, Benilton Carvalho bcarv...@jhsph.eduwrote: in that case, wouldn't diag(diag(foo)) suffice? b On May 14, 2009, at 4:30 PM, Michael Spiegel wrote: The intent of diag(foo,

[Rd] diag() has a bug (PR#13702)

2009-05-14 Thread michael . m . spiegel
Full_Name: Michael Spiegel Version: 2.9.0 OS: linux Submission from: (NULL) (204.111.252.142) The diag() function appears to reject the first argument when it is a matrix, and nrow and ncol arguments are also provided. foo - matrix(c(1:4),2,2) foo [,1] [,2] [1,]13 [2,]24

Re: [Rd] diag() has a bug (PR#13702)

2009-05-14 Thread Benilton Carvalho
My understanding is that providing nrow and ncol, you want to create a diagonal matrix with those dimensions. diag(pi, 6, 6) and that by diag(foo, 2, 2) you really meant diag(foo)[2] Apologies if I misunderstood. b On May 14, 2009, at 10:45 AM, michael.m.spie...@gmail.com wrote:

Re: [Rd] diag() has a bug (PR#13702)

2009-05-14 Thread Peter Dalgaard
Benilton Carvalho wrote: in that case, wouldn't diag(diag(foo)) suffice? Yes (beware the length 1 case, though). However, don't delete the bug report. That error message is just wrong: if (is.array(x) length(dim(x)) != 1L) stop(first argument is array, but not matrix.) b