2017-07-20 7 views
0

Je veux développer un modèle de régression généralisée qui permettrait à l'utilisateur de sélectionner les variables de son choix et voir le résultat. Je ne semble pas voir le résultat.Comment voir le résultat du modèle en brillant?

library(shiny) 
    library(dplyr) 
    library(caret) 
    data(mtcars) 

    UI <- fluidPage(


    titlePanel("MTCARS"), 
    selectInput("response","y", 
       names(mtcars)), 
    selectInput("Columns","Columns", 
       names(mtcars), multiple = TRUE), 
    actionButton('btn_train',label = 'Calibrate Model', 
       icon = icon('cogs'),#'bullseye','rocket' 
       class='btn-danger fa-lg', 
       width='100%'), 
    dataTableOutput("dfStr") 


) 

Server <- function(input, output) { 

    x <- reactive({as.character(input$Columns)}) 
    y <- reactive({as.character(input$response)}) 
framework <- reactive({train(reformulate(x(), y()), data = mtcars, method='glm', maxit=500, trace=F)}) 
modeloutput <- reactive({ 
    summary(framework()) 
}) 

observeEvent(input$btn_train, 
       output$dfStr <- renderPrint({ 
       str(modeloutput()) 
       })) 
} 

shinyApp(UI, Server) 

Répondre

0

Il semble que le problème est que vous utilisez dataTableOutput("dfStr") au lieu de verbatimTextOutput("dfStr").

Le bouton Calibrate Model ne fait rien puisque vous utilisez des variables réactives pour générer le modèle.

+0

Bonjour Geovany, Merci pour vos conseils. Un problème que j'ai maintenant est qu'au lieu d'obtenir le résumé du résultat du modèle comme le coefficient et les valeurs Rsquare. Cela me donne beaucoup de texte indésirable. Si vous pouvez exécuter le code de votre côté, vous verrez le problème. Merci encore – Samarth

+0

Si vous souhaitez utiliser dataTableOutput du côté ui, vous devez utiliser la fonction de rendu correspondante. Il s'agit donc soit de verbatimTextOutput pour la partie ui, soit de renderDataTable pour la partie serveur. Ensuite, il est préférable de spécifier le type de sortie de table souhaité à la fin, car les résultats récapitulatifs ne seront pas souhaités. Vous pouvez obtenir les informations nécessaires à partir de votre valeur framework(), comme framework() $ (utilisez str() pour trouver la structure de votre sortie). Si vous voulez une sortie simple, utilisez simplement verbatimTextOutput dans ui et appelez seulement framework() dans la partie serveur – Asayat

+0

Merci pour votre aide Asayat. J'ai utilisé deux méthodes que vous avez suggérées. Malheureusement, aucun d'entre eux ne me donne le résultat sommaire de mon modèle. Peut-être que je suis en train de lire vos commentaires correctement. Voulez-vous s'il vous plaît poster votre code comme un commentaire. Le code est reproductible parce que j'utilise des données qui existent déjà dans R. – Samarth