作者Godkin (Nostalgie)
看板Statistics
標題[程式] R裡頭的dist函式一問
時間Sat Mar 3 20:38:34 2012
------------------------------------------------------------------------
[軟體程式類別]:
R
[程式問題]:
計算distance matrix使用dist()時, 若matrix當中有NA時
它是怎麼計算的?
[軟體熟悉度]:
中(3個月到1年)
[問題敘述]:
小弟手邊有些資料必須計算當中的distance matrix, 但是當中有些missing values
原本我以為dist()在計算row跟row之間euclidean distance的時候, 會忽略NA不算
但是出來的結果卻有點不太一樣
[程式範例]:
x<-matrix(sample(1:80,16),nrow=4,ncol=4)
y<-x
y[sample(1:16,3)]<-NA
#x= [55,36,10,2;75,47,30,26;64,72,73,5;70,37,46,8]
#y= [55,36,NA,2;NA,47,30,26;64,72,73,5;70,NA,46,8]
dist(y, method="euclidean")
結果是:
1 2 3
2 37.33631
3 42.98837 62.34314
4 22.84732 34.05877 32.12476
如果我忽略有NA的column不計的話, 第一個row跟第二個row之間的距離卻是26.40076
怎解?
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.255.119.41
1F:→ gsuper:我也測不出來,不過我trace code of dist(),發現它是call 03/05 14:02
2F:→ gsuper:一段C的程式碼; d <- .C("R_distance", .....)$d 03/05 14:03
4F:→ gsuper:上面那個連結抓了兩次就死了 = =a 03/05 14:10
6F:→ Godkin:不管如何, 還是謝謝你 :) 03/05 23:59