R随机产生的闪亮单选按钮选择

时间:2020-05-27 17:03:03

标签: r shiny

我正在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)

当我在本地运行该应用程序时,每次我运行该应用程序时(根据预期)将选择一组不同的选项。但是,一旦我发布到shinyapps.io,则每次的选择都是相同的(因为x1中的每次运行都相同)。我该如何做,以便每次应用程序打开时都从选择集中提取一个新样本?

1 个答案:

答案 0 :(得分:1)

您可能知道,Shiny服务器实现了缓存以提高系统利用率。您遇到的问题是x1变量正在用户之间采样和缓存。

解决此问题的方法是将选项抽样到reactiveValue中,然后在页面加载时动态更新单选按钮。

或者,您可以尝试使用this approach

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=""))
   ...
  )
}