99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-11-28 閱讀量: 2635
R如何實(shí)現(xiàn)歐式距離等計(jì)算

如何計(jì)算每列間的距離,假如計(jì)算第一列與其他列之間的距離,并求出距離最小的那一組,在R中能否實(shí)現(xiàn)歐氏距離和馬氏距離的計(jì)算?請(qǐng)求解答。

在R中計(jì)算距離的函數(shù)為dist(),比較直接的用法是dist(x,method="euclidean")即為計(jì)算歐式距離,其余可選的參數(shù)還有"maximum", "manhattan", "canberra", "binary" ,"minkowski",lz調(diào)整這個(gè)參數(shù)就能得到lz要的距離。

sample code:

data=read.csv(file="E:\\R1.csv",header=T,row.names=1)

mdist=as.matrix(dist(data))

mvec=mdist["504",]

說(shuō)明:

R最好讀.csv文件,直接.xlsx文件經(jīng)常有問(wèn)題,所以我把你的excel xlsx轉(zhuǎn)成csv了。dist默認(rèn)就是算歐式距離,算完后得到一個(gè)所有距離的矩陣,假定你需要sample 504(即你的data中第一列編號(hào)504的)和其他所有sample的距離(包括和504自己),最后vector mvec中的結(jié)果就是需要的。如果你只需要504和其他所有sample的距離,想把和504自己的距離去掉,最后用:

mvec=mdist["504",-(row.names(mdist)=="504")]

馬氏距離直接用mahalanobis(data,center=,cov=), 返回是一個(gè)vector,即對(duì)于每個(gè)sample X,計(jì)算

? ?(X-mu)' S.inv (X-mu)

mu就是center或者“均值”,S即cov或者variance-covariance matrix,S.inv是S的逆。我不知道你要用神馬center和cov,所以沒(méi)寫(xiě)。如果你想算的是對(duì)于兩個(gè)sample X,Y,馬氏距離為:

? ?(X-mu)' S.inv (Y-mu)

比如X固定為某個(gè)sample,Y應(yīng)該變化為其他所有sample,要得到一系列的距離,這個(gè)也很容易,只要有mu和S,自己做matrix multiplication就好了。

0.0000
1
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無(wú)數(shù)據(jù)
推薦帖子