r - 有没有办法在 Shiny 中通过单击单个动作按钮来触发连续的定时事件?
问题描述
我正在构建一个旨在帮助学生理解采样的应用程序。该应用程序允许学生选择一个样本大小,然后在给定一些概率的情况下查看他们得到了多少个 1。当样本量较小(即 1)时,经常会出现同一值(0 或 1)连续多次采样的情况。但是,如果学生单击操作按钮重新采样并获得与上次随机抽签相同的值,我将无法在视觉上清楚地表明该值已更新(即,发生了某些事情,即使它给出了结果和之前一样)。理想情况下,我希望单击操作按钮以使主面板上的此字段变为空白几分之一秒,然后显示新值。
我曾尝试使用 Sys.sleep 让系统在继续之前休眠一秒钟,但这不起作用。在使用 Sys.sleep 之前,我可以通过尝试在同一输出字段中打印其他内容来使其(某种程度上)工作,但我觉得必须有一种更简单的方法。
ui <- fluidPage(
titlePanel("Example"),
sidebarLayout(
sidebarPanel(
actionButton("run", "Pick a number (0 or 1)")),
mainPanel(
h4("Your Number!"),
textOutput("result")
)
)
)
server <- function(input, output,session) {
observeEvent(input$run, {
x <- sample(c(0,1),size=1,prob=c(.5,.5),replace=T)
###Including these commented lines achieves what I want,
###but doesn't seem very elegant:
# output$result <- renderText({
# print("something")
# })
Sys.sleep(1)
output$result <- renderText({
paste("You got the number ",x)
})
})
}
shinyApp(ui, server)
解决方案
推荐阅读
- python - 如何结合来自两个 Tensorflow 模型的预测?
- python - 如果看到某种颜色/颜色并通过不和谐机器人或 webhook 发送屏幕截图的程序?
- javascript - 通过 id 反应私有路由
- amazon-web-services - 如何将 Origin Access Identity 添加到分发中?
- db2 - 从 DB2 中的多个 xml 节点和 xml 属性中检索一个值
- go - 通过服务帐户获取任何 google 目录用户的姓名和电子邮件
- c# - 由于任务数量,程序变慢
- c++ - 使用 OpenMP 并行运行的最简单示例
- postgresql - 在 2 个 CentOS 8 vagrant box 之间设置 PostgreSQL 13 日志传送复制,
- python - 递归:找到在列表中添加元素以达到 n 的所有方法