- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Shiny 页面上,有一个读取大日志文件的步骤,加载需要 25 秒。我想在用户单击按钮后显示进度条。否则他们在等待时可能会认为它不起作用。
#ui.R
#I have an actionButton to activate reading the log file
actionButton("getLog","Get Log data")
#server.R
observeEvent(input$getLog, {
nL = as.numeric(countLines("/script/cronlog.log"))
Log = read.table("/script/cronlog.log",sep = ";",skip = nL-1000)
LogFile = tail(Log,100)
colnames(LogFile) = "cronlog"
})
我正在尝试使用 withProgress,但我不知道如何使用它来包装代码。我试过这样的事情:
observeEvent(input$getLog, {
withProgress(message = 'Calculation in progress',
detail = 'This may take a while...', value = 0, {
for (i in 1:60) {
incProgress(1/60)
Sys.sleep(0.25)
}
})
nL = as.numeric(countLines("/script/cronlog.log"))
Log = read.table("/script/cronlog.log",sep = ";",skip = nL-1000)
LogFile = tail(Log,100)
colnames(LogFile) = "cronlog"
})
进度条确实出现了,但加载进度似乎在进度条之后运行,这使得过程更长。我想我没有正确包装代码。
有什么建议吗?
提前致谢!
最佳答案
如果您应用的操作不是离散的,withProgress
对您帮助不大。您可以在各个语句之间增加进度条:
nL = as.numeric(countLines("/script/cronlog.log"))
incProgress(1/4)
log = read.table("/script/cronlog.log",sep = ";",skip = nL-1000)
incProgress(1/4)
...
但我怀疑它会产生巨大的变化。另一种方法是将输入文件分成多个 block ,并在每个文件后读取这些独立递增的计数器。
在实践中我会考虑删除以下部分:
nL = as.numeric(countLines("/script/cronlog.log"))
并使用标准系统实用程序仅通过管道传输所需数据:
read.table(pipe("tail -n 1000 /script/cronlog.log"), sep = ";")
或直接使用data.table::fread
:
fread("tail -n 1000 /script/cronlog.log", sep = ";")
关于R Shiny withProgress 放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35346706/
在我的 Shiny 页面上,有一个读取大日志文件的步骤,加载需要 25 秒。我想在用户单击按钮后显示进度条。否则他们在等待时可能会认为它不起作用。 #ui.R #I have an actionB
withProgress() 函数可以生成一个消息框,指示 Shiny 的应用程序正在运行。但该消息位于浏览器的右上角,文字尺寸较小,这使得该消息不那么引人注目。 所以我想知道有没有什么方法可以改变这
我试图了解“进度指示器”在 shiny 中是如何工作的,所以我创建了一个循环(虚构的),它运行大约需要 7 秒 (1.8GHz)。我想在用户点击按钮 Go 后显示一个进度条! 这是代码: ui
我对标题感到非常抱歉,我不知道如何更好地描述我的问题。 我想实现 VSCode 的 withProgress API,以便能够在我的代码运行/进行时显示进度条。 文档在这里:https://code.
我正在设计一个应用程序,我有一个 withProgress() 通知,它在整个过程中被大量使用。我用类似的东西设置了酒吧的位置: tags$style( paste0( ".shiny-p
我是一名优秀的程序员,十分优秀!