「統計ソフトRに距離行列の読み込み」なんだけどね...
統計ソフトRに距離行列を読み込む方法をご存知の方はいらっしゃらないでしょうか.
例えば,次のような距離行列をRに読み込みたいとします.
A B C
B 1
C 1 1
D 1 1 1
これを通常の行列のようにread.table()等で読み込んだとしても,当然ですがデータの種類は正方行列data.frameになってしまいます.
距離行列distとして,読み込むにはどうしたらいいでしょうか.
言い換えれば質問は,
> class(読み込んだデータ)
[1] "dist"
と返されるにはどうしたらいいか,です.
尚,Rのdist()を使って距離行列を作成する方法は知っています.
どうしても他のソフトで作成した距離行列をRに読む込む必要があります.
一人から回答をもらったけど,旨くいかなかったとのたまい,それっきり。
以下のようにすれば良いのでは?
x ← read.table("dist.dat", header=TRUE, fill=TRUE)
n ← nrow(x)+1
d ← matrix(0, n, n)
colnames(d) ← rownames(d) ← c(colnames(x)[1], rownames(x))
d[lower.tri(d)] ← x[lower.tri(x, diag=TRUE)]
(d ← as.dist(d))
データファイルは,以下のようなものとする
A B C
B 1
C 2 3
D 4 5 6