r #shiny
#r #блестящий
Вопрос:
Меня интересует выбор по умолчанию для приложения shiny, который меняется при каждом обновлении страницы. Так, например, в демонстрации hello world Shiny вместо выбора по умолчанию 500
я бы хотел, чтобы он был sample(1:1000,1)
http://shiny.rstudio.com/gallery/example-01-hello.html
Я попытался поместить случайно сгенерированное значение непосредственно в value =
часть, но, похоже, оно обновляется только при каждом запуске приложения, а не при каждой загрузке страницы.
Как я могу добиться случайного значения по умолчанию?
Ответ №1:
Мы можем использовать updateSliderInput
, например
server <- function(input, output, session) {
observe({
updateSliderInput(session, "bins", value = sample(1:500,1))
})
....
}
Не забудьте добавить переменную сеанса в определение функции сервера и обновить максимальное значение в sliderInput до 500.
Ответ №2:
Вам нужно использовать реактивный элемент пользовательского интерфейса.
library(shiny)
ui <- fluidPage(
# Application title
titlePanel("Hello Shiny!"),
# Sidebar with a slider input for number of observations
sidebarLayout(
sidebarPanel(
uiOutput("slider")
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
)
server <- function(input, output) {
# Expression that generates a plot of the distribution. The expression
# is wrapped in a call to renderPlot to indicate that:
#
# 1) It is "reactive" and therefore should be automatically
# re-executed when inputs change
# 2) Its output type is a plot
#
output$slider <- renderUI({
sliderInput("obs",
"Number of observations:",
min = 1,
max = 1000,
value =runif(1,1,1000))
})
output$distPlot <- renderPlot({
req(input$obs)
# generate an rnorm distribution and plot it
dist <- rnorm(input$obs)
hist(dist)
})
}
shinyApp(ui = ui, server = server)
Это приведет к случайному выбору нового значения в ползунке. Это то, что вы искали?