Я хочу извлечь уникальные расстояния из моей дистанционной матрицы.Проблема в том, что иногда моя дистанционная матрица не будет симметричной, что означает, что я не могу использовать «upper / lowertri ()» для извлечения уникальных символов.Также я не могу использовать «duplicated ()», так как потенциально могу иметь мультипликаторы определенных значений, которые все уникальны (принадлежат разным выборкам).
Небольшой пример можно увидеть ниже:
WithinGroupBefore <-
"1_1" "2_1" "3_1" "4_1"
"1_1" 0 0.757009346 0.592592593 0.74137931
"2_1" 0.757009346 0 0.754545455 0.748148148
"4_1" 0.74137931 0.748148148 0.717948718 0
`
Так что для этого примера нужно извлечь 6 значений
Я приближаюсь к решению, но у меня все еще есть проблема.Решение на данный момент:
for (col in 1:ncol(WithinGroupBefore)) {
for (row in 1:nrow(WithinGroupBefore)) {
if (WithinGroupBefore[row,col]!= 0){
ValsBefore[row,col] <- WithinGroupBefore[row,col]
}
else
break
}
}
Полученная матрица выглядит следующим образом:
ValsBefore <-
"1_1" "2_1" "3_1" "4_1"
"1_1" NA 0.757009346 0.592592593 0.74137931
"2_1" NA NA NA NA
"4_1" NA NA NA NA
Она должна выглядеть следующим образом
ValsBefore <-
"1_1" "2_1" "3_1" "4_1"
"1_1" NA 0.757009346 0.592592593 0.74137931
"2_1" NA NA 0.754545455 0.748148148
"4_1" NA NA 0.717948718 NA