この質問は、距離行列からグループ内距離とグループ間距離を抽出する方法のフォローアップのようなものですか? Rで。その質問では、最初にすべてのポイントの距離行列を計算し、次に単純にクラス間距離行列を抽出しました。最初の計算をバイパスして抽出にスキップしたい状況があります。つまり、クラス間距離行列を直接計算したいのです。リンクされた例から微調整を加えて描画すると、次のデータフレームにいくつかのデータがあるとしdf
ます。
values<-c(0.002,0.3,0.4,0.005,0.6,0.2,0.001,0.002,0.3,0.01)
class<-c("A","A","A","B","B","B","B","A","B","A")
df<-data.frame(values, class)
私が欲しいのは距離行列です:
1 2 3 8 10
4 .003 .295 .395 .003 .005
5 .598 .300 .200 .598 .590
6 .198 .100 .200 .198 .190
7 .001 .299 .399 .001 .009
9 .298 .000 .100 .298 .290
これを行うためのエレガントで高速な方法がRにすでに存在しますか?
EDIT上記の1Dケースの適切な解決策を受け取った後、ボーナスの質問を考えました.高次元のケースはどうですか?代わりに次のようにdf
見える場合:
values1<-c(0.002,0.3,0.4,0.005,0.6,0.2,0.001,0.002,0.3,0.01)
values2<-c(0.001,0.1,0.1,0.001,0.1,0.1,0.001,0.001,0.1,0.01)
class<-c("A","A","A","B","B","B","B","A","B","A")
df<-data.frame(values1, values2, class)
B
そして、 class 内のポイントと class 内のポイントの間のユークリッド距離の行列を再度取得することに興味がありA
ます。