0
我有一個網絡。 在該節點連接這樣的:r在不知道距離的情況下對網絡節點進行聚類
A-B
B-C
A-C
B-D
E-F
F-G
H-G
H-E
我希望他們能夠簇生狀ABCD和EFGH。 有沒有辦法在R?
我有一個網絡。 在該節點連接這樣的:r在不知道距離的情況下對網絡節點進行聚類
A-B
B-C
A-C
B-D
E-F
F-G
H-G
H-E
我希望他們能夠簇生狀ABCD和EFGH。 有沒有辦法在R?
想我會一起爆炸的直接解決方案提供了一個有用的比較(和實踐我的編碼 - 所有的指針歡迎...)
## initial link data frame (with start and end points)
link=data.frame(st=c("A","B","A","B","E","F","H","H"),
end=c("B","C","C","D","F","G","G","E"),
stringsAsFactors=FALSE)
## form blank list where clusters will build up (works up
## to n=26!)
n=nrow(link)
L=c(); for (j in seq_len(n)) {L=c(L,list(NULL))}
names(L)=LETTERS[seq_len(n)]
## for each link in turn, pull together a collection of
## everything in the same cluster as either end, and update
## all relevant entries in L
for (j in seq_len(n)) {
clus=sort(unique(c(link$st[j],link$end[j],
L[[link$st[j]]],L[[link$end[j]]])))
for (k in clus) {L[[k]]=clus}
}
print(L)
輸出如預期:
$A
[1] "A" "B" "C" "D"
$B
[1] "A" "B" "C" "D"
$C
[1] "A" "B" "C" "D"
$D
[1] "A" "B" "C" "D"
$E
[1] "E" "F" "G" "H"
$F
[1] "E" "F" "G" "H"
$G
[1] "E" "F" "G" "H"
$H
[1] "E" "F" "G" "H"
太棒了!很高興它是有幫助的,Sonal :) –