# cmdscale in R returns difficult to explain results

## PROBLEM DESCRIPTION:

We have two very similar 8D datasets.
The OLD has 107 records, the NEW has 111 record (107 from the OLD plus 4 additional record).

old <- read.csv(file="old.csv", dec=".", sep=";", header = FALSE)


Sample plots confirming the high compatibility of the two data sets.

par(mfrow = c(1,2), pty="m")

plot(new[,1], new[,2], col="blue", pch=16)
points(old[,1], old[,2], col="red", pch=16)

plot(new[,3], new[,7], col="blue", pch=16)
points(old[,3], old[,7], col="red", pch=16)


Reduction to 2D.

mds.old <- cmdscale(dist(old), k=2)
mds.new <- cmdscale(dist(new), k=2)


Plotting the 2D data clearly shows that the following is true:

mds.new <- mds.old * -1


In other words: the NEW result is reflected in some way comparing to the OLD result.

par(mfrow = c(2,2), pty="m")
plot(mds.old, main="OLD"); grid()
plot(mds.new, main="NEW"); grid()


Plotting the 2D data with the aforementioned modification (mds.new = mds.new * -1)

mds.new <- mds.new * -1
plot(mds.old, main="OLD"); grid()
plot(mds.new, main="NEW"); grid()


## QUESTION:

What is the reason that the two returned results are so different and scaled by the -1 factor? The OLD and NEW datasets are almost identical and in my opinion, it would be very natural for final results to be very similar to each other.