2011-07-07 42 views
2

我有5x14的數據矩陣。我正在使用MDS來獲取感知地圖。我可以正確地做MDS &得到結果。多維縮放

但我的問題是在MDS中我們可以映射行或列變量。是否可以使用MDS映射兩行&列變量。

我使用的代碼如下:

perp<-read.csv("E:\\Projects\\Combined_3.csv") 
ads.dis<-dist(perp) 
perp_mds <- cmdscale(ads.dis, k = 2,eig=TRUE) 
x <- perp_mds$points[,1] 
y <- perp_mds$points[,2] 
plot(x,y, xlab = "Coordinate 1", ylab = "Coordinate 2", type = "n") 
text(x,y, labels = rownames(perp)) 

,我會很感激,如果有人可以幫助我的編碼。

問候, 阿里

回答

4

一般來說,答案是否定的,不是cmdscale()cmdscale()所有知識都是對象之間的差異。在素食主義者包中,有函數capscale(),它是主座標分析(PCoA aka MDS)的受限版本,但可用於普通PCoA。它可以在雙標圖般的人物放置兩個對象和變量:

require(vegan) 
data(varespec) 
mod <- capscale(varespec ~ 1) 
plot(mod) 

但是千萬注意,後交通動脈與歐氏距離是一樣的PCA,這也可以被使用,自然會繪製兩個對象和變量:

plot(rda(varespec)) 

或使用基礎R功能

mod2 <- prcomp(varespec) 
biplot(mod2) 

還是你的意思MDS的非公制的版本?

+0

非常感謝加文!這正是我一直在尋找的東西。它就像一個魅力。 – Beta