既然你沒有model1
和自身之間的距離,你需要插入自己使用的答案從this question:
(可以忽略模型的錯誤編號相比,你的輸入數據,它不服務於一個目的,真的)
# 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()
與ncol
和nrow
爲「重塑」你的距離矢量在適當的方式:
matrix(val, ncol = 200, nrow = 200)
編輯:
當你的數據只包含距離爲一個方向,所以只有之間例如model1 - model5
而不是model5 - model1
,你將不得不填充矩陣的上三角部分的值,就像他們做here。忘記我在這個答案的第一部分中生成的數據。另外,忘記將其添加到距離列中。
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)]
我想這和它的作品,但問題是,對於矩陣,兩者(例如)56- 112和112-56應該在矩陣中,即使它們是相同的數字。但所有重複項都不在文件中,所以生成的矩陣似乎不正確:( –
@MatthijsvanKesteren我編輯了我的答案。「編輯」後面的部分現在只適用於您的案例 –
對不起,對於回覆遲是英雄! –