sách gpt4 ai đã đi

r - Shiny:允许用户选择 react 性

In lại 作者:行者123 更新时间:2023-12-02 05:17:26 29 4
mua khóa gpt4 Nike

我正在构建一个带有多个选项卡的应用程序,其中一些选项卡涉及过多的计算,而另一些选项卡的计算速度很快。一个允许用户在 react 性或手动更新之间进行选择的复选框,与“刷新”按钮结合使用,将是理想的选择。

下面的简单示例说明了我的目标。它几乎可以工作,除了在取消选中“自动刷新”复选框时进行最后一次刷新之外,如果打开计算密集型选项卡,这会很痛苦。有什么办法可以解决这个问题吗?

ui.r

library(shiny)
shinyUI(fluidPage(
titlePanel("Test"),
sidebarLayout(
sidebarPanel(
checkboxInput("autoRefresh", "Automatically refresh", TRUE),
actionButton("refresh", "Refresh!"),
radioButtons("choice", "Choice of value:",
c("10" = 10,
"20" = 20))
),

mainPanel(
tabsetPanel(type = "tabs",
tabPanel("Add random decimals to value", textOutput("value"))
)
)
)
))

服务器.r

library(shiny)
shinyServer(function(input, output) {
output$value <- renderText({

input$refresh
if(input$autoRefresh == 1) {
input$choice
}
isolate({
output <- runif(1,0,1) + as.numeric(input$choice)
})
})
})

非常感谢!

1 Câu trả lời

在此解决方案中,我创建了两个观察器:一个用于观察刷新按钮何时被点击,第二个观察器用于何时更改选择。第一个总是更新输出。

第二个检查 input$autoRefresh 的状态,然后退出或更新 renderText.

不幸的是,您必须将 runif 命令写入两次,这可能不利于更新代码(如果您执行两次操作,则更容易引入错误)。在实践中,如果您的实际应用程序中存在复杂/多行流程,您可能想要创建一个新函数,然后只需调用该函数即可。

  shinyServer(function(input, output) {
observe({
input$refresh
output$value<-renderText({
isolate(runif(1,0,1) + as.numeric(input$choice))
})
})
observe({
input$choice
output$value<-if(input$autoRefresh==0) return() else {
renderText({isolate(runif(1,0,1) + as.numeric(input$choice))})
}
})
})

关于r - Shiny:允许用户选择 react 性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27949797/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com