gpt4 book ai didi

r - 在 Shiny 中显示带有变量的进度条

转载 作者:行者123 更新时间:2023-12-02 09:14:31 30 4
gpt4 key购买 nike

我在 Shiny 中玩弄进度条。对于我正在开发的实际 Shiny 应用程序,我正在抓取推文。并且 - 因为这需要很长时间 - 我想通过进度条通知用户。我做了一个小的可重现的例子来概述我的问题:

library(shiny)

ui <- fluidPage(
actionButton("show", "Show modal dialog")
)

server <- function(input, output, session) {

test_function <- function(city){
return(city)
}

observeEvent(input$show, {
withProgress(message = 'Making plot', value = 0, {
cities <- c("Amsterdam", "London", "Paris", "Toronto")
counter = 1

for (city in length(cities)) {
progress = counter / length(cities)
city <- test_function(city)
incProgress(progress, detail = paste("Scraping city: ", city))
Sys.sleep(1)
counter = counter + 1
}
})
})

}

shinyApp(ui, server)

我正在寻找的是一个进度条 - 每秒 - 显示另一个城市:

“刮破阿姆斯特丹”“刮伦敦”

等...

并且进度条应该根据城市填充(所以伦敦是 2/4 -> 50%)。然而,当我运行上面的代码时,我只得到“Scraping city 4”。

关于为获得我想要的结果应该进行的调整有什么想法吗?

最佳答案

如果你想要一个更漂亮的进度条,请查看 shinyWidgets 包:

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
column(4,progressBar(id = "pb4", value = 0, display_pct = T)),
actionButton("show", "Show modal dialog")

)
server <- function(input, output, session) {

observeEvent(input$show, {
maxi <- 50
for (i in 1:maxi) {
updateProgressBar(session = session, id = "pb4", value = (i/maxi)*100)
Sys.sleep(0.1)
}
})
}

shinyApp(ui, server)

enter image description here

关于r - 在 Shiny 中显示带有变量的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48487124/

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