Rで距離行列を作る
n個の要素がある。要素間に距離という値があるとする。自身から自身への距離は0であるという。要素xから要素yへの距離と要素yから要素xへの距離とは同一であるという。このような距離をnxn行列で表現したものが距離行列である。
今、ペアできる。Rのapeパッケージのnh 関数のヘルプにある例を参考にする。
個の値をリストとして作る。個の値を第1要素とその他の要素との距離とし、次の個の値を第2要素と第3要素以降の要素のそれとする、という方式で値を入れる。次の例では、,である。
x <- c(7, 8, 11, 13, 16, 13, 17, 5, 8, 10, 13, 10, 14, 5, 7, 10, 7, 11, 8, 11, 8, 12, 5, 6, 10, 9, 13, 8)
nxn行列を作る。
M <- matrix(NA, 8, 8)
リストxに入れた値が格納されるべき行列Mの右上三角部分のセルは、
row(M) > col(M)
の条件を満たすから
M[row(M) > col(M)] <- x
また、左下三角部分のセルには
M[row(M) < col(M)] <- x
のようにして入れる。
ついで、対角成分を0にする。
diag(M) <- 0
行と列とに連番で名前を与える。
rownames(M) <- colnames(M) <- 1:8
Neighbour-Joining 法でツリーを作って
tr <- nj(M)
プロットする(unrootedにて)。
plot(tr,"u")