我正在创建一个出色的机器学习应用程序。我正在数据表中显示数据,并希望通过选择行并单击按钮以将结果传递给机器学习模型。 怎么能做到闪亮呢?
答案 0 :(得分:0)
我想我了解您正在尝试做什么。希望我做的这个最小的例子对您有所帮助。使用DT进行表格渲染和行选择(在这里,我取消了对多行的选择,因为我推断这就是您想要的)。仅当选择行并按下按钮时,才使用按钮和隔离来运行模型。我没有在这里拟合模型,而是使用高亮行数据绘制了一个图,但是原理是完全一样的。
library(shiny)
library(DT)
server <- function(input, output, session) {
output$x1 = DT::renderDataTable(mtcars, server = FALSE, selection = "single")
# client-side processing
output$x2 = renderPrint({
s = input$x1_rows_selected
if (length(s)) {
cat('These rows were selected:\n\n')
cat(s, sep = ', ')
}
})
# highlight selected rows in the scatterplot - here you add your model
output$x3 = renderPlot({
input$run_model # button input
s = isolate(input$x1_rows_selected) # use isolate to run model only on button press
par(mar = c(4, 4, 1, .1))
plot(mtcars[, 2:3])
if (length(s)) points(mtcars[s, 2:3, drop = FALSE], pch = 19, cex = 2)
})
}
ui <- fluidPage(
title = 'Select Table Rows',
h1('A Client-side Table'),
fluidRow(
column(9, DT::dataTableOutput('x1')),
column(3, verbatimTextOutput('x2'))
),
hr(),
h1('Model'),
fluidRow(
column(6, actionButton("run_model", "Go")),
column(9, plotOutput('x3', height = 500))
)
)
shinyApp(ui = ui, server = server)