R Блестящие случайно сгенерированные варианты выбора радиокнопок - PullRequest
0 голосов
/ 27 мая 2020

Я создаю опрос в Shiny, где я хочу, чтобы варианты выбора, представленные переключателями, отображались случайным образом. См. Пример кода ниже:

library(shiny)

choices<-c("a","b","c","d","e")
x1<-sample(choices,2)
x2<-sample(choices,2)

ui<-fluidPage(
     radioButtons("q1","Which do you prefer?", choices=c(x1,"No Preference"),selected=""),
     radioButtons("q2","Which do you prefer?", choices=c(x2,"No Preference"),selected="")),

server <- function(input, output) {
# Not important
})
shinyApp(ui = ui, server = server)

Когда я запускаю приложение локально, каждый раз, когда я запускаю приложение, будет выбираться другой набор вариантов (как и предполагалось). Но как только я публикую sh на shinyapps.io, варианты каждый раз одни и те же (например, x1 одно и то же каждый раз, когда я запускаю приложение). Как сделать так, чтобы каждый раз при открытии приложения из выбранного набора брался новый образец?

1 Ответ

1 голос
/ 27 мая 2020

Как вы, возможно, знаете, Shiny server реализует кеширование для улучшения использования системы. Проблема заключается в том, что переменная x1 выбирается и кэшируется между пользователями.

Способ решения этой проблемы состоит в том, чтобы пробовать варианты выбора в reactiveValue, а затем динамически обновлять переключатели при загрузке страницы.

В качестве альтернативы вы можете попробовать использовать этот подход :

ui <- function(req) {
  fluidPage(
   x1<-sample(choices,2)
   x2<-sample(choices,2)
   radioButtons("q1","Which do you prefer?", choices=c(x1,"No Preference"),selected=""),
   radioButtons("q2","Which do you prefer?", choices=c(x2,"No Preference"),selected=""))
   ...
  )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...