Hello Gavin!

I thank you so much that you help me here.
Only to answer your questions there are 452 samples (species) in A  
and the same number in B.
Unfortunately I will get the book from Legendre & Legendre only in 2  
days (small library) but I think for the moment I am busy to try and  
learn with the codes you gave me here.
For me it seems that this will solve all the problems I have at the  
moment.
Now it is my turn to learn about it.

Once again: thanks

Greetings

Birgit


Am 20.06.2007 um 18:02 schrieb Gavin Simpson:

> On Wed, 2007-06-20 at 15:09 +0200, Birgit Lemcke wrote:
>> Hello Gavin and thanks for your answer.
>>
>> Your completely right I dont 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
>>
>
> Not easily, especially without knowing how many samples are in A or B,
> although all that is really needed is some careful subsetting of the
> dist object and a minor amount of programming - unfortunately after
> close to two weeks intensive teaching my brain isn't up to doing that
> just now.
>
> One simple way to do this is to use the distance() function in my
> analogue package (on CRAN). distance() can calculate the  
> dissimilarities
> between one group of samples and another. Here is a simple example  
> using
> some dummy data, from ?distance:
>
>      ## simple example using dummy data
>      train <- data.frame(matrix(abs(runif(200)), ncol = 10))
>      rownames(train) <- LETTERS[1:20]
>      colnames(train) <- as.character(1:10)
>      fossil <- data.frame(matrix(abs(runif(100)), ncol = 10))
>      colnames(fossil) <- as.character(1:10)
>      rownames(fossil) <- letters[1:10]
>
>      ## calculate distances/dissimilarities between train and fossil
>      ## samples
>      test <- distance(train, fossil)
>
> test is now a matrix, the diagonal elements of which are the values  
> that
> you appear to want:
>
>      diag(test)
>
> if I'm reading your diagram correctly. Note that for this, you need to
> be comparing row 1 from matrix A with row 1 from matrix B - if they  
> are
> in some other order, then this won't work.
>
> distance() has a version of Gower's coefficient for mixed that allows
> you to specify weights. The function is just about clever enough to
> allow missing values if you use method = "mixed" in distance(). Be  
> sure
> to read up about Gower's mixed coefficient in his 1971 paper (Gower,
> 1971, Biometrics 23; 623--637) and the use that weights and the range
> parameter Rj are put to, or see the relevant section in Legendre &
> Legendre (1998).
>
>> 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)))
>
> This was showing you that the diagonals of the dissimilarity matrix  
> are
> just a vector of zeroes. all.equal tests equality of its arguments.
>
>>
>> Thanks a lot and sorry for my inability to solve my problems on my  
>> own.
>
> You're welcome. Using R is a learning experience. You only need to
> grovel and apologise if you have not done your homework before posting
> and not read the FAQ, the documentation or searched the archives, or
> followed the posting guide. Which is not the case here.
>
> HTH
>
> G
>
>>
>> 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 fr Systematische Botanik
>> Zollikerstrasse 107
>> CH-8008 Zrich
>> Switzerland
>> Ph: +41 (0)44 634 8351
>> birgit.lemcke@systbot.uzh.ch
>>
>>
>>
>>
>>
>>
>> 	[[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.
> -- 
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>  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
birgit.lemcke@systbot.uzh.ch






	[[alternative HTML version deleted]]

