Shiny imprimir resultado stats::predict

#Desejo converter o código abaixo em um shiny

#pacotes-----
library(e1071)
library(tidyverse)

#base -----
base ← data.frame(
stringsAsFactors = FALSE,
historia = c(“ruim”,“desconhecida”,
“desconhecida”,“desconhecida”,“desconhecida”,“desconhecida”,
“ruim”,“ruim”,“boa”,“boa”,“boa”,“boa”,“boa”,“ruim”),
divida = c(“alta”,“alta”,“baixa”,
“baixa”,“baixa”,“baixa”,“baixa”,“baixa”,“baixa”,“alta”,
“alta”,“alta”,“alta”,“alta”),
garantias = c(“nenhuma”,“nenhuma”,“nenhuma”,
“nenhuma”,“nenhuma”,“adequada”,“nenhuma”,“adequada”,
“nenhuma”,“adequada”,“nenhuma”,“nenhuma”,“nenhuma”,
“nenhuma”),
renda = c(“0_15”,“15_35”,“15_35”,
“acima_35”,“acima_35”,“acima_35”,“0_15”,“acima_35”,
“acima_35”,“acima_35”,“0_15”,“15_35”,“acima_35”,“15_35”),
risco = c(“alto”,“alto”,“moderado”,
“alto”,“baixo”,“baixo”,“alto”,“moderado”,“baixo”,
“baixo”,“alto”,“moderado”,“baixo”,“alto”)
)

calculos -----

classificador ← naiveBayes(x = select(.data = base, -risco), y = base$risco)

historia = ‘boa’
divida = ‘alta’
garantias = ‘nenhuma’
renda = ‘acima_35’

df = data.frame(historia, divida, garantias, renda)

previsao = stats::predict(classificador, newdata = df, ‘raw’)
print(previsao)

#MEU SHINY PELA METADE
#A dúvida é como gerar o resultado previsao e imprimi-lo, quero alterar os selectInput e visualizar os resultados

library(shiny)
library(tidyverse)
library(e1071)

ui ← fluidPage(
shiny::selectInput(“historia”, label = “select Historia”, choices = base$historia),

shiny::selectInput(“divida”, label = “select Divida”, choices = base$divida),

shiny::selectInput(“garantia”, label = “select garantia”, choices = base$garantias),

shiny::selectInput(“renda”, label = “select renda”, choices = base$renda),

tableOutput(“tabela”),

verbatimTextOutput(“resultado”)

)

server ← function(input, output, session) {

base ← data.frame(
stringsAsFactors = FALSE,
historia = c(“ruim”,“desconhecida”,
“desconhecida”,“desconhecida”,“desconhecida”,“desconhecida”,
“ruim”,“ruim”,“boa”,“boa”,“boa”,“boa”,“boa”,“ruim”),
divida = c(“alta”,“alta”,“baixa”,
“baixa”,“baixa”,“baixa”,“baixa”,“baixa”,“baixa”,“alta”,
“alta”,“alta”,“alta”,“alta”),
garantias = c(“nenhuma”,“nenhuma”,“nenhuma”,
“nenhuma”,“nenhuma”,“adequada”,“nenhuma”,“adequada”,
“nenhuma”,“adequada”,“nenhuma”,“nenhuma”,“nenhuma”,
“nenhuma”),
renda = c(“0_15”,“15_35”,“15_35”,
“acima_35”,“acima_35”,“acima_35”,“0_15”,“acima_35”,
“acima_35”,“acima_35”,“0_15”,“15_35”,“acima_35”,“15_35”),
risco = c(“alto”,“alto”,“moderado”,
“alto”,“baixo”,“baixo”,“alto”,“moderado”,“baixo”,
“baixo”,“alto”,“moderado”,“baixo”,“alto”)
)
#glimpse(base)

classificador ← naiveBayes(x = select(.data = base, -risco), y = base$risco)

df ← reactive(data.frame(input$historia, input$divida, input$garantia, input$renda))

output$tabela ← renderTable(df()) #aqui só para visualizar e ver se deu certo o data frame

output$resultado ← renderPrint(“previsao”) #aqui não sei como fazer

#previsao ← stats::predict(classificador, newdata = df(), ‘raw’) #não sei se este df() vai funcionar, não consegui testar