私はHAC(階層的凝集クラスタリング)を使用しています。私は系統樹を持っていて、要素をファイルに保存して事後分析を行おうとしています(クラスターごとに要素にコードを割り当てます)。
デンドログラムの分岐を取り、要素の単一のリストを返す再帰関数があります。
私の問題は次のとおりです。関数がリストを返すとき、各要素が適切に追加されているにもかかわらず、ブランチの要素の1つだけが含まれています。これが私のコードです:
lista_interna<-function(lista,elementos){
print(paste("Tam El. ",length(elementos),""))
for (i in 1:length(lista)){
if(typeof(lista[[i]])=="integer"){
print("agrega agrega...")
elementos[[length(elementos)+1L]]<-lista[[i]]
}else if(typeof(lista[[i]])=="list"){
print("Hace Recall....")
Recall(lista[[i]],elementos);
}
}
print(elementos) # when I print here the list, contains all elements
return (elementos)
}
どこ:
- lista: 樹状図ブランチです
- elementos: 結果のリスト (提供されたブランチのすべての要素を含む)
関数を呼び出すと、結果は 1 つの要素 (最初の葉) を持つリストになります。
empty<-list()
res<-lista_interna(dendrogram_branch,empty)
どんな提案でも大歓迎です。
よろしくお願いします、
ウラジミール。