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.edu>wrote: > 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, 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 >> reasonable thing for diag(<matrix>, <numeric>, <numeric>) to return, then at >> the very least the error message should be changed, as the first argument is >> in fact a matrix. >> >> On Thu, May 14, 2009 at 3:24 PM, Benilton Carvalho <bcarv...@jhsph.edu> >> wrote: >> 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: >> >> 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,] 1 3 >> [2,] 2 4 >> diag(foo) >> [1] 1 4 >> diag(foo, 2, 2) >> Error in diag(foo, 2, 2) : first argument is array, but not matrix. >> is.matrix(foo) >> [1] TRUE >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> >> >> > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel