在用户单击预测功能时,我需要帮助弄清楚如何产生一些输出(显示战斗预期结果的数据表)。
我尝试了在线以下几个示例,但似乎并没有得到我想要的动作。不确定我是否可以分享很多可重现的示例,因为预测按钮会接受输入并通过我构建的预测模型运行它。
这是我编写的代码
column(offset=5,width = 8,
actionButton("gobutton","Predict"),
dataTableOutput("predictions")),
和服务器功能
observeEvent(input$goButton, {
output$predictions <- renderDataTable(
{
preds3 <- bind_cols(preds,preds2)
print(cat_model$predict(preds3))
cat_model$predict(preds3)
}
)
})
当前,如果我在应用中单击“预测”按钮,则什么也不会发生
更新:
data <- eventReactive(
input$goButton, {
preds3 <- bind_cols(preds,preds2)
print(cat_model$predict(preds3))
cat_model$predict(preds3)
}
)
output$predictions <- renderDataTable({
data()
})
但单击“预测”时仍未获得任何输出 我还尝试将输出包装在eventReactive中的服务器上:
这是cat_model $ predict(preds3)的输出:
[,1] [,2] [,3]
[1,] 8.77947e-06 0.3193044 0.6806869
这是我从dput(cat_model ..)获得的输出:
structure(c(8.77946992728772e-06, 0.31930435971863, 0.680686860811443
), .Dim = c(1L, 3L))
从瞥见:
num [1, 1:3] 8.78e-06 3.19e-01 6.81e-01
遵循答案之一中的建议:
data <- eventReactive(input$goButton, {
preds3 <- bind_cols(preds,preds2)
print(dput(cat_model$predict_proba(preds3)))
cat_model$predict_proba(preds3)
})
output$predictions <- renderDataTable({
data()
})
答案 0 :(得分:1)
我认为eventReactive
比observeEvent
更合适。直接使用输出(而不是对cat$model
的调用),可以在此处正确显示DT。
library(shiny)
library(DT)
ui <- {
fluidPage(
fluidRow(
actionButton('goButton', 'Predict'),
DTOutput('predictions')
)
)
}
server <- function(input, output, session) {
data <- eventReactive(input$goButton, {
structure(c(8.77946992728772e-06, 0.31930435971863, 0.680686860811443
), .Dim = c(1L, 3L))
})
output$predictions <- renderDT({
data()
})
}
shinyApp(ui, server)