es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Seleccionar una columna específica en R Shiny basada en selectInput.

Tengo un problema con seleccionar una columna específica dependiendo de selectInput. Intento crear una matriz de confusión. Tengo el argumento (data = result) pero ahora necesito reference = ?, que es una columna específica de data t add. Esa columna (que tiene que ser reference) debe ser input$choose y de data t add. ¿Cómo puedo hacerlo? Gracias.

Servidor:

   output$choose_y <- renderUI({

<pre><code> y_choices <- names(data())
 selectInput('choose_y', label = 'Seleccione la Variable Objetivo', choices = y_choices)
</code></pre>

})

output$choose<em>x <- renderUI({
     x_choices <- names(data())[!names(data()) %in% input$choose</em>y]
     checkboxGroupInput('choose<em>x', label = 'Seleccione los Predictores', choices = x_choices)
   })</em>

observeEvent(input$c50, {
     form <- paste(isolate(input$choosey), '~', paste(isolate(input$choosex), collapse = '+'))
     c50<em>fit <- eval(parse(text = sprintf("ctree(%s, data = data())", form)))
     output$tree</em>summary <- renderPrint(summary(c50<em>fit))
     output$tree</em>plot<c50> <- renderPlot({
       plot(c50fit)
     })</c50>

<pre><code> result <-  predict(c50_fit, newdata = data_t())
 data_t_add = cbind(data_t(), result)
 output$data_t_add_out <- renderTable({
     return(head(data_t_add))
 })

 tbl = confusionMatrix(result, REFERENCE, mode = "prec_recall")
 output$conf_matrix <- renderPrint({ tbl })
</code></pre>

})

<h6>############### EDITAR del SERVIDOR</h6>

try = data<em>t</em>add %>% select(input$choosey)

<pre><code> output$tripple <- renderPrint({
   return(str(try))
 })

 output$tripples <- renderPrint({
   return(str(data_t_add))
 })

 tbl = confusionMatrix(result, try, mode = "prec_recall")
 output$conf_matrix <- renderPrint({ tbl })
</code></pre>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para elegir una columna específica en data_t_add basada en la entrada del usuario, puedes crear una expresión reactiva que filtre el dataframe data_t_add por la columna de entrada seleccionada.

    Aquí tienes un ejemplo de fragmento de código para la función del servidor:

    “`{r}

    Expresión reactiva para subconjuntar data_t_add basado en la entrada de choose_y

    selected_col <- reactive({
    req(input$choose_y) # asegurarse de que choose_y no sea NULL
    data_t_add[[input$choose_y]]
    })

    Utilizar selected_col como referencia en la función confusionMatrix

    tbl <- confusionMatrix(result, selected_col(), mode = “prec_recall”)
    output$conf_matrix <- renderPrint({ tbl })
    “`

    Explicación:

    • Utilizamos la función reactive para crear una expresión reactiva llamada selected_col. Esta expresión filtra el dataframe data_t_add por la columna de entrada seleccionada utilizando el operador [[.

    • Utilizamos la función req para asegurarnos de que input$choose_y no sea NULL.

    • En la función confusionMatrix, utilizamos selected_col() como columna de referencia en lugar de REFERENCE. La parte () al final de la expresión reactiva se utiliza para llamar a la expresión reactiva como una función y obtener su valor.

    • Aquí, no necesitamos crear una variable try porque selected_col() ya nos da la columna seleccionada como un vector.

    • Por último, utilizamos la función renderPrint para mostrar la matriz de confusión en la salida.

Comments are closed.