[英]Pairwise comparison table from a list R
如果我們想要一個對稱矩陣 output,我們可以使用outer
,並as.dist
將結果呈現為下三角。
out <- outer(x, x, FUN = Vectorize(function(u, v) length(intersect(u, v))))
as.dist(out)
#> A B C
#> B 151
#> C 128 228
#> D 133 187 150
或者如果它只是沒有鏡像重復的成對比較
out <- combn(x, 2, FUN = function(x) length(intersect(x[[1]], x[[2]])))
names(out) <- combn(names(x), 2, FUN = paste, collapse = "_")
stack(out)[2:1]
ind values
1 A_B 151
2 A_C 128
3 A_D 133
4 B_C 228
5 B_D 187
6 C_D 150
這是另一個基本 R 選項
> crossprod(table(stack(x)))
ind
ind A B C D
A 300 151 128 133
B 151 525 228 187
C 128 228 440 150
D 133 187 150 350
或者
> as.dist(crossprod(table(stack(x))))
A B C
B 151
C 128 228
D 133 187 150
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.