gpt4 book ai didi

用于加载数据的 R Shiny 应用进度指示器

转载 作者:行者123 更新时间:2023-12-04 12:05:54 28 4
gpt4 key购买 nike

Shiny 是我们的内部 BI 工具。对于我们的 Shiny 应用程序,我们在 ShinyServer 运行之前加载数据:

load("afterProcessedData.RData")
# or dt = fread("afterProcessedData.csv")

shinyServer(function(input, output, session){ ...

但是,一些应用程序正在加载大文件,加载时间长达 30 秒。很多用户在打开一个页面的时候,不知道是不是页面坏掉了,因为它在加载的时候就卡住了。他们可能会关闭它或单击过滤器,这可能会导致错误。在这种情况下,进度条将非常有用。我通知 withProgress()可能有帮助,但它必须在里面 reactive()renderXx() .

我能做的一种方法是让 laod()翘曲 reactive()shinyServer(function(input, output, session){但我担心它会降低性能。我的用户非常关心响应性能。

对这种情况有什么建议吗?

编辑:我想没有一种简单的方法可以做到这一点。我还有一个想法。也许我可以在屏幕上显示一个文本,说“数据正在加载”,但我必须在第一个表出现后让它消失。但是,我不知道如何设置条件。下面是我的代码显示第一个表:
dashboardBody(
fluidRow(
tabBox(width = 12,
tabPanel("Summary",
dataTableOutput("data1")),

先感谢您!

最佳答案

即使我仍然有兴趣知道如何为 load() 添加进程栏,我已经实现了替代解决方案,现在很好。它在页面上有一条文字说“数据正在加载...”,它会在第一个表格出现后消失。

#server.R   firstData is a reactive function to get the data for 1st table
output$firstTable = reactive({
return(is.null(firstData()))
})
#ui.R
conditionalPanel(
condition = "output.firstTable",
box(width = 12,
h1("The data is loading...")
)
)

关于用于加载数据的 R Shiny 应用进度指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299597/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com