R-Shiny - Fonction HCPC

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Clement Robert
Messages : 31
Enregistré le : 17 Mai 2016, 09:52

R-Shiny - Fonction HCPC

Messagepar Clement Robert » 13 Juin 2016, 11:02

Bonjour,

Je voulais savoir si c'était possible d'incorporer la fonction HCPC dans une appli R-shiny ?
Je ne vois pas trop dans quel type d'objet la stocké étant donné qu'elle nécessite un choix de l'utilisateur (couper le dendrogramme).
C'est possible d'effectuer ce choix sous shiny ?

Cdlt

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: R-Shiny - Fonction HCPC

Messagepar Serge Rapenne » 13 Juin 2016, 12:03

Bonjour,

c'est possible et il y a même un package pour ca : https://cran.r-project.org/web/packages/Factoshiny/Factoshiny.pdf

Serge

Clement Robert
Messages : 31
Enregistré le : 17 Mai 2016, 09:52

Re: R-Shiny - Fonction HCPC

Messagepar Clement Robert » 13 Juin 2016, 13:24

Bonjour Serge,

Cette fonction est faite pour être intégrée à une application existante ? J'ai déjà une application qui fusionne mes jeux de données et fait tourner une ACP. J'aimerai rajouter dans un onglet supplémentaire la CAH.

HCPCshiny synthétise les résultats dans une appli non ?

J'ai test de l'intégrer comme ceci :

SERVER :

Code : Tout sélectionner

  output$Res.HCPC <- renderUI({
    tmp_BDD_imputee_complete <- BDD_imputee_complete()
    res.pca <- PCA(tmp_BDD_imputee_complete,quali.sup = 50:54,ind.sup = c(413,127,605,753), ncp=12)
    resu.hcpc <- HCPCshiny(res.pca)
    print(resu.hcpc)
  })


UI :

Code : Tout sélectionner

tabPanel("CAH",
uiOutput("Res.HCPC")
)


J'ai ce message lorsque je vais sur l'onglet : Error : Key / already in use... je ne dois pas m'y prendre correctement

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: R-Shiny - Fonction HCPC

Messagepar Serge Rapenne » 13 Juin 2016, 15:07

Pour être honnête je n'avais pas regardé la doc du package Factoshiny.
C'est une appli shiny independante.

j'ai bricolé rapidement un exemple d'intégration de HCPC dans une appli shiny :

ui.R

Code : Tout sélectionner

library(shinythemes)
shinyUI(navbarPage("HCPC Shiny",
                   tabPanel("données",
                            fluidPage(theme=shinytheme("spacelab"),
                                      fluidRow(
                                        sliderInput("nb_clust","Nombre de cluster",1,10,4)
                                      ),
                                      fluidRow(
                                        column(6,
                                               h4("'Summary' données d'entrées"),
                                               tableOutput("bilan_decat")
                                        ),
                                        column(6,
                                               h4("'Summary' HCPC"),
                                               tableOutput("bilan_HCPC")
                                        )
                                      )
                            )),
                   tabPanel("Graphique",
                            fluidPage(theme=shinytheme("spacelab"),
                                      fluidRow(
                                        column(6,
                                               plotOutput("graph1")
                                        ),
                                        column(6,
                                               plotOutput("graph2")
                                        )
                                       
                                      ),
                                      fluidRow(
                                        column(6,
                                               plotOutput("graph3")
                                               
                                        ))
                            )
                   )
))


server.R

Code : Tout sélectionner

library(shiny)
library(FactoMineR)

shinyServer(function(input, output) { 
 
  donnee_entree <-reactive({
    #ici on charge les données, dans l'exemple, je me contente de charger un dataset de Factomine
    data(decathlon)
    decathlon[,1:10]   
  })
 
  HCPCInput <-reactive({
    tmp<-donnee_entree()
    #le calcul HCPC en fonction du sliderInput
    HCPC(tmp,nb.clust=input$nb_clust,consol=FALSE,graph=FALSE,metric='euclidean')     
  })
 
  #les différentes sorties 2 tableaux sur le 1er onglet, 3 graphiques sur le 2eme onglet
  output$bilan_decat <- renderTable({
    tmp<-donnee_entree()
    summary(tmp[,1:2])
  })
 
  output$bilan_HCPC <- renderTable({
    tmp<-HCPCInput()
    summary(tmp)
  })
 
  output$graph1<-renderPlot({
    tmp<-HCPCInput()
    plot.HCPC(tmp,choice='map',draw.tree=FALSE,title='Plan factoriel',axes=c(1,2))
  })
 
  output$graph2<-renderPlot({
    tmp<-HCPCInput()
    plot.HCPC(tmp,choice='3D.map',ind.names=FALSE,centers.plot=FALSE,title='',angle=60,axes=c(1,2))
  })
 
  output$graph3<-renderPlot({
    tmp<-HCPCInput()
    plot.HCPC(tmp,choice='tree',title='Arbre hiérarchique') 
  })
 
})


à adapter à ton code d'origine

Serge

Clement Robert
Messages : 31
Enregistré le : 17 Mai 2016, 09:52

Re: R-Shiny - Fonction HCPC

Messagepar Clement Robert » 15 Juin 2016, 08:01

Super ! Merci beaucoup Serge !

J'avais pas pensé à dissocier chaque graph ... Bcp plus souple en plus !!


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité