gpt4 book ai didi

r - 在 shiny 中使用 "withProgress"

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

我试图了解“进度指示器”在 shiny 中是如何工作的,所以我创建了一个循环(虚构的),它运行大约需要 7 秒 (1.8GHz)。我想在用户点击按钮 Go 后显示一个进度条!

这是代码:

    ui <- fluidPage(
headerPanel("Progress indicators"),
sidebarPanel(
numericInput("n", "N:", min = 0, max = 100, value = 50000),
br(),
actionButton("goButton", "Go!")

),
mainPanel(
verbatimTextOutput("nText")
)
)

server <- function(input, output) {

fictional <- reactive({
n=input$n
p = rep(0,n)
for(j in 1:n){
data1=rnorm(1000,1,2)
data2=runif(1000,1,2)
p[j] = min(data1,data2)
}
pw1 = mean(p)
return(pw1)
})
ntext <- eventReactive(input$goButton, { fictional()})

output$nText <- eventReactive(input$goButton, {

withProgress(message = 'Progress indicators', {
ntext()
})
})
}
shinyApp(ui, server)

我试图使用 withProgress 但我不知道如何使用它来包装代码,因为当我点击 Go!它向我显示进度条但停止了。循环结束时消失

有什么建议吗?

提前致谢!

最佳答案

参见 ?withProgress - 你必须告诉你的进度条进度,egp>

   ui <- fluidPage(
headerPanel("Progress indicators"),
sidebarPanel(
numericInput("n", "N:", min = 0, max = 100, value = 50000),
br(),
actionButton("goButton", "Go!")

),
mainPanel(
verbatimTextOutput("nText")
)
)

server <- function(input, output) {

fictional <- reactive({
n=input$n
p = rep(0,n)
for(j in 1:n){
if (j%%100==0) incProgress(100/n)
data1=rnorm(1000,1,2)
data2=runif(1000,1,2)
p[j] = min(data1,data2)
}
pw1 = mean(p)
return(pw1)
})
ntext <- eventReactive(input$goButton, { fictional()})

output$nText <- eventReactive(input$goButton, {

withProgress(message = 'Progress indicators', {
ntext()
})
})
}
shinyApp(ui, server)

关于r - 在 shiny 中使用 "withProgress",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44747751/

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