[Rd] diag() has a bug (PR#13702)
Benilton Carvalho
bcarvalh at jhsph.edu
Thu May 14 21:35:14 CEST 2009
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
> <bcarvalh at 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.spiegel at 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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
More information about the R-devel
mailing list