Hello Gavin and thanks for your answer.

Your completely right I don´t need the diagonal that is the bisecting  
line of the angle.

I need another diagonal of the (now) matrix.

         A1 A2 A3 A4 B1 B2 B3 B4
    A1
    A2
    A3
    A4
    B1 X
    B2       X
    B3            X
    B4                 X


I need for example the diagonal that compares A1 with B1.
Do you have an idea how I can handle this?

What is the effect of this code?

all.equal(diags, diag(as.matrix(dis.bc)))

Thanks a lot and sorry for my inability to solve my problems on my own.

Am 20.06.2007 um 14:11 schrieb Gavin Simpson:

> On Wed, 2007-06-20 at 13:26 +0200, Birgit Lemcke wrote:
>> Hello,
>>
>> I am using Mac OS X on a power book and R 2.5.0
>>
>> I try to extract a diagonal from a dissimilarity matrix made with
>> dsvdis, with this code:
>>
>> diag(DiTestRR)
>>
>> But I get this error message:
>>
>> Fehler in array(0, c(n, p)) : 'dim' spezifiziert ein zu groes Array
>>
>> english:
>>
>> Error in array(0, c(n, p)) : 'dim' specifies a too big array.
>>
>> Is there a limit to extract diagonals?
>
> The returned object is not a matrix, but an object of class "dist"  
> which
> doesn't store the diagonals or the upper triangle of the dissimilarity
> matrix to save memory. You need to convert the dist object to a matrix
> first, then extract the diagonal. But, as this shows:
>
>> require(labdsv)
>> ?dsvdis
>> data(bryceveg)
>> ?dsvdis
>> dis.bc <- dsvdis(bryceveg,index="bray/curtis")
> Warning in symbol.For("dsvdis") : 'symbol.For' is not needed: please
> remove it
>> diag(as.matrix(dis.bc))
>
> This is meaningless as the diagonals are all zero, as they should be;
> this is the distance between a site and itself.
>
>>
>> I hope somebody will help me!
>
> So perhaps you could explain why you want the diagonal. It would be
> easier to just do:
>
> diags <- rep(0, length = nrow(bryceveg))
>
> That will be without the sample labels, but that is easily rectified
>
>> names(diags) <- rownames(bryceveg)
>> all.equal(diags, diag(as.matrix(dis.bc)))
> [1] TRUE
>
> So you'll have to reformulate your question if this is not what you
> wanted.
>
> A word of warning, do not do diag(dis.bc)) on the above as it  
> brought my
> Linux box to it's knees trying to do something silly - easily
> recoverable, but beware.
>
> HTH
>
> G
>
>>
>> Greetings
>>
>> Birgit Lemcke
>
> -- 
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>  Gavin Simpson                 [t] +44 (0)20 7679 0522
>  ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
>  Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
>  Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
>  UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>

Birgit Lemcke
Institut für Systematische Botanik
Zollikerstrasse 107
CH-8008 Zürich
Switzerland
Ph: +41 (0)44 634 8351
[EMAIL PROTECTED]






        [[alternative HTML version deleted]]

______________________________________________
R-help@stat.math.ethz.ch 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