Re: [R] Transform distance constraints into a 2D-map

From: Ted Harding <ted.harding_at_nessie.mcc.ac.uk>
Date: Thu 05 Apr 2007 - 15:29:52 GMT


On 05-Apr-07 13:05:29, Emmanuel Levy wrote:
> Dear all,
>
> Could you please point me out to a function or set of functions
> that would allow me to optimize positions on the 2D map of points
> for which I are distance contrainted?
>
> for example, if I have:
> a b c
> a 0.0 0.5 0.7
> b 0.5 0.0 0.3
> c 0.7 0.3 0.0
>
> I would like to obtain (x,y) coordinates to plot A,B,C so that the
> distance constraints are satisfied. i.e. a is 0.5 far from b, and o.7
> far from c. etc ...
>
> Many thanks for your help,
>
> Best,
>
> Emmanuel

Probably any of the multidimensional scaling functions variously available would do (it is not clear what you mean by "optimize", though). In your example above, an exact solution exists.

For example

library(MASS)
D<-matrix(c(0.0, 0.5, 0.7, 0.5, 0.0, 0.3, 0.7, 0.3, 0.0),nrow=3) rownames(D)<-c("a","b","c")
colnames(D)<-c("a","b","c")

P<-isoMDS(D)$points
plot(P[,1],P[,2],pch="+",col="blue")

P

##          [,1]        [,2]
## a  0.39114338  0.03809598
## b -0.08358748 -0.11884547
## c -0.30755590  0.08074949

dist(P)
##      a   b

## b 0.5
## c 0.7 0.3

The last result shows that the distances betweem the three points in the 3 rows of P are as desired: a<->b=0.5, a<->c=0.7, b<->c=0.3

Hoping this helps!
Ted.



E-Mail: (Ted Harding) <ted.harding@nessie.mcc.ac.uk> Fax-to-email: +44 (0)870 094 0861
Date: 05-Apr-07                                       Time: 16:29:49
------------------------------ XFMail ------------------------------

______________________________________________
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. Received on Fri Apr 06 01:42:15 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 05 Apr 2007 - 16:30:48 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.