Я хотел бы создать приложение Shiny, которое показывает результат модели, обученной курсору. Затем, когда запускается вторая модель, она сохранит предыдущий результат на дисплее и покажет самый последний результат. Я попытался закодировать l oop с ответами в сообщении Предыдущий ввод в Shiny и закодировать вывод с ответами в сообщении R Shiny: сохранить старый вывод
Однако я не могу придумать способ отображения вывода курсора в виде сводки или, может быть, таблицы, которая облегчила бы чтение.
Это код, который у меня есть. Проблема заключается в части output $ model_record
library(shiny)
library(dplyr)
library(caret)
X <- r_sample_factor(c("low", "high"), n=232)
MAMAMA<-r_sample_factor(c("C/C", "C/G", "G/G"), n=232)
MEMEME<-r_sample_factor(c("C/C", "C/T", "T/T"), n=232)
MIMIMI<-r_sample_factor(c("A/A", "A/T", "T/T"), n=232)
datos<-data.frame(X,MAMAMA,MEMEME,MIMIMI)
set.seed(12345)
#Define the size of training dataset
inTrain <- createDataPartition(y=datos$X, p=0.66666666666666667, list=FALSE)
#Create training and test data
datos_train<-datos[inTrain,]
datos_test<-datos[-inTrain,]
#Label
class_train<-datos[inTrain,1]
class_test<-datos[-inTrain,1]
ui<- fluidPage(
sidebarLayout(
sidebarPanel(
h3("Design your algorithm"),
radioButtons("algorithm",
"Select one algorithm to visualize its output",
choices= c("Random Forest" = "rf",
"Artificial Neural Network" = "mlp",
"Support Vector Machine" = "svmRadial") ),
radioButtons("checkGroup",
"Select a resampling method",
choices = c(#"Nothing" = "none",
"Cross validation" = "cv",
"Bootstrap" = "boot"
)
),
numericInput("num",
"Select a number of resampling events",
value = 5),
checkboxGroupInput("preproc",
"Select one or multiple preprocessing methods",
choices = c("Center" = "center",
"Scale" = "scale",
"Box Cox" = "BoxCox")
),
actionButton(inputId = "fit_model",
label = "Fit Model"),
numericInput(inputId = "model_to_show",
label = "Show N most recent models",
value = 2)
),
mainPanel(
htmlOutput("model_record")
)
)
)
server<-function(input, output, session){
Model <- reactiveValues(
Record = NULL
)
observeEvent(
input[["fit_model"]],
{
fit <-
train(X~.,
data= datos_train,
method=input$algorithm,
trControl= trainControl(method=input$checkGroup, number=input$num, classProbs=TRUE, savePredictions = TRUE),
preProc = c(input$preproc)
)
Model$Record <- c(Model$Record, summary(fit))
}
)
output$model_record <-
renderPrint({
paste(tail(Model$Record, input[["model_to_show"]]), collapse = "<br/><br/>")
})
}
# Run the application
shinyApp(ui, server)
Когда я запускаю это приложение, оно дает некоторый результат, а при двойном запуске вывод добавляется ниже. Однако этот вывод не в удобном для пользователя стиле. Я хотел отобразить его в сводке или, возможно, в формате таблицы.
Вывод приложения