2017-06-14 5 views
-1

私は200個のモデルと、2つのモデルのそれぞれの分子距離を比較したテキストファイルを持っています。これらの二つのモデルを比較した場合、対応する分子距離を最初の数字は最初のモデルであり、第二の数が第2のモデルであり、クラスタリングのための距離行列のインポート方法R

1 2 1.2323 
1 3 6.4862 
1 4 4.4789 
1 5 3.6476 
. 
. 

ダウン200のすべての方法、および第3の数:これは、このようになります。

これをRにインポートし、200x200の素敵な行列を作成していくつかのクラスタリング分析を実行する方法が考えられます。私はまだスタックとRに新しいですが、事前に感謝!

答えて

0

あなたはmodel1と自身の間の距離を持っていないので、あなたはthis questionからの回答を使用して、自分自身、ことを挿入する必要があります:

(あなたが入力されたデータに比べてモデルの間違った番号を無視することができますそれは場所にいたら、それはあなたが適切な方法で距離のあなたのベクトルを「再構築」するncolnrowmatrix()を使用することができ、)本当に、

# Create some dummy data that has the same shape as your data: 
    df   <- expand.grid(model1 = 1:120, model2 = 2:120) 
    df$distance <- runif(n = 119*120, min = 1, max = 10) 
    head(df) 
    # model1 model2 distance 
    # 1  2 7.958746 
    # 2  2 1.083700 
    # 3  2 9.211113 
    # 4  2 5.544380 
    # 5  2 5.498215 
    # 6  2 1.520450 

inds <- seq(0, 200*119, by = 200) 
val <- c(df$distance, rep(0, length(inds))) 

inds <- c(seq_along(df$distance), inds + 0.5) 
val <- val[order(inds)] 

を目的を果たしていない。

matrix(val, ncol = 200, nrow = 200) 

編集:

あなたのデータは一方向のみのための距離が含まれ、これだけの間、例えばmodel1 - model5で、model5 - model1でない場合は、hereのように、行列の上三角部分の値を入力する必要があります。この回答の最初の部分で生成したデータは忘れてしまいます。また、距離の列に1を追加することを忘れてしまいます。

dist_mat      <- diag(200) 
dist_mat[upper.tri(dist_mat)] <- your_data$distance 

は対角線、使用の下に上三角エントリをコピーする:

dist_mat[lower.tri(dist_mat)] <- t(dist_mat)[lower.tri(dist_mat)] 
+0

私はこれを試み、それが動作しますが、問題は、行列のため、両方の(例えば)56ビット112と112〜56は、それらが同じ数であっても行列になければならない。しかし、すべての複製はファイルに含まれていないので、生成された行列は正しいとは思われません:( –

+0

@MatthijsvanKesteren "編集"後の部分は現在あなたのケースにのみ関連しています –

+0

遅く返事を申し訳ありません英雄です! –

0

ファイルの形式がわからないので、最も一般的なファイル形式、つまりCSVを想定します。

次に、読んだファイルread.csvまたはfreadを調べてください。

コード例:私はdata.tableパッケージを使用することをお勧め

dt <- read.csv(file, sep = "", header = TRUE) 

。次に:

setDT(dt) 
dt[, id := paste0(as.character(col1), "-", as.character(col2))] 

これは、最初のモデルと2番目のモデルから新しい変数を作成し、一意のIDとして機能します。

私がしているのは、このIDを削除して数値入力をスケールすることです。 スケーリング後、クラスタリングアルゴリズムを実行します。

結果をIDと結合して結果を分析します。

これはあなたが探しているものですか?

関連する問題