Aha.  Yes, it would.  Thank you.  However the error message is still
incorrect.

On Thu, May 14, 2009 at 3:35 PM, Benilton Carvalho <bcarvalh@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 <bcarvalh@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@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]]

