Я работаю над приложением в sinydashboard
, в котором пользователь генерирует случайное число одним нажатием кнопки. Случайное число соответствует строке в кадре данных, которую мне нужно отобразить на приборной панели, используя infoBox
. Каждый infoBox
должен сохраняться на экране, пока пользователь не закроет приложение.
Я пытался сгенерировать новую выходную переменную при каждом щелчке в server.R
, однако не смог найти способ ссылки на нее в ui.R
. Минимальный пример ниже. Я не включал генерацию имени для выходной переменной при каждом нажатии кнопки, поскольку это не работает вообще.
library(shiny)
library(shinydashboard)
ui <- dashboardPage(dashboardHeader(title = ""),
dashboardSidebar(),
dashboardBody(fluidRow(
box(
width = 3,
actionButton(inputId = "generateButton",
label = "Generate")
),
box(infoBoxOutput("rnum1"))
)))
server <- function(input, output) {
randomData <- data.frame("RN" = runif(100, 1, 100))
observeEvent(input$generateButton, {
randomNumber <- floor(runif(1, 1, 100))
dataRow <- randomData[randomNumber,]
# Display dataRow in a persistent infoBox
# in a way that 5 clicks will produce 5 boxes
# Number of clicks is not known in advance
output$rnum1 <- renderInfoBox({
infoBox("Number", dataRow)
})
})
}
shinyApp(ui = ui, server = server)