[R] Transform distance constraints into a 2D-map
(Ted Harding)
ted.harding at nessie.mcc.ac.uk
Thu Apr 5 17:29:52 CEST 2007
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 at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 05-Apr-07 Time: 16:29:49
------------------------------ XFMail ------------------------------
More information about the R-help
mailing list