2017-10-07 4 views

Répondre

0

Solution trouvée à l'aide de la bibliothèque data.tree. Pris le temps de trouver une solution. Lors de l'analyse de la première ligne 1,2, une branche est créée. Lorsque la deuxième ligne est analysée et lors de la création de la branche, elle remplace la branche précédente et ne conserve que la branche 1,4. Vous avez surmonté ce problème en vérifiant si le noeud a déjà un enfant avec le nom donné sinon créez-en un autre en vous référant au noeud existant. Voici le code. `

rootNode <- Node$new("Root") 

for(i in 1:nrow(data)){ 
    tmp<-rootNode 
    for(j in 1:ncol(data)){ 

    if(is.null(Navigate(tmp, c(as.character(data[i,j]))))){ 
     node <- tmp$AddChild(data[i,j]) 
     tmp <- node 
    } 
    else{ 
     tmp <- Navigate(tmp, c(as.character(data[i,j]))) 
    } 
    } 

} 

plot(rootNode) 

`

pour d'autres cas Testée de test à et il fonctionne très bien.

data <- data.frame(a=c(1,1,2,2),b=c(1,2,4,3),c=c(2,2,2,2),d=c(2,3,3,4))