繁体   English   中英

闪亮:允许反应性由用户选择

Shiny: allow reactivity to be user-selectable

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

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

下面的简单示例说明了我的目标。 它几乎可以工作,除了在“自动刷新” - 检查框未选中时最后一次刷新,这是一个痛苦,如果计算密集的选项卡打开。 有没有办法解决?

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"))
            )
        )
    )
))

server.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)
        })
    })
})

提前谢谢了!

2 个回复

您可以缓存输出并快捷方式 - 在适当的时候返回它

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

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

在这个解决方案中,我创建了两个观察者:一个用于何时refresh按钮,另一个用于何时更改choice 第一个总是更新输出。

第二个检查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))})
      }  
    })
  })
1 R闪亮选择输入反应性

在我的Shiny应用程序中,我的UI中有一个名为bob的selectInput,具有选项“ A”,“ B”,“ C”。 在服务器的顶部(之前没有其他功能) 点表示大约一千万和六行代码。 现在,一千万零六行代码主要提到了几个大型函数文件,其中一个参数是alice。 我想让al ...

2 R使用用户选择的变量进行闪亮反应性绘图

我最近开始使用R-Shiny,由于遇到问题,我有一个简单的问题。 因此,我正在尝试构建一个反应式折线图,用户可以在其中定义数据库中的2个变量。 我已经能够获得下拉列表的变量列表,但是我无法使用所选的值来绘制折线图。 参考代码: 和部分服务器代码 我跳过了编写渲染 ...

3 闪亮的允许用户选择要显示的列

我正在研究Shiny中的数据表功能,我感兴趣的是创建一个可列出数据表所有列并允许用户选择要在数据表上查看的列的井面板或侧面板。 现在,下面的代码显示玩具数据集mtcars所有列 我有兴趣向用户提供使用复选框打开或关闭这些列的功能 解决这个问题的任何帮助都非常有用。 提前致 ...

4 如果还有闪亮的反应性

我有一个相当简单的问题,但无法弄清楚为什么它不起作用 如果选择的值不是'a'我基本上会尝试对数据集进行子集化。 如果选择'a' ,我希望返回整个df。 刚碰到 警告:如果以下错误:参数长度为零[没有可用的堆栈跟踪] ...

5 闪亮的反应性

我有一个包含大量参数的应用程序。 每个参数都有很多粒度,这使得找到所需的参数变得很痛苦。 这导致反应部分不断地计算,这减慢了事情。 我添加了一个submitButton,它解决了上述问题,但后来又遇到了另一个问题。 下面是我构建的框架的简单复制。 参数输入采用1到1000之间的数字 ...

2013-07-17 15:16:51 2 7736   r/ shiny
6 闪亮的ggvis反应性

我正在尝试创建一个响应按钮选择的ggvis图。 当我运行它时,选择的第一个按钮将显示一个很大的ggvis图,但是一旦更改选择,我会看到新图非常简短地瞥见,然后消失了。 之后,我看不到任何图。 我的代码如下: 用户界面: 服务器: ...

7 闪亮 iframe | 反应性

我正在尝试显示动态iframe以根据用户对URL的输入来显示youtube视频。 我的代码不会产生错误,但是视频不会显示,您有什么解决方案吗? 提前谢谢了! 问候, 汤玛士 我的代码: 用户界面 服务器 ...

2015-03-11 09:27:02 2 1478   r/ shiny
8 反应性DateRangeInput为闪亮

我正在自学Shiny,并且卡在ggplot2图上,无法使用反应性dateRangeInput作为我的x轴。 我有几个问题: 有没有一种方法可以使用我的数据框来获取日期范围输入的最小值和最大值,而不必对其进行硬编码,因此当我向数据框添加更多推文时,不必每次都对这些值进行硬编码了吗? ...

9 闪亮的反应性表达

我是Shiny和R的新手,但有一定的编程经验。 我的最终目标是开发一个在线多项选择调查表并进行一些统计分析。 我目前正在尝试创建一个MCQ,为了更好地理解和学习如何使用R和Shiny进行操作,我正在使用J Bryers代码( 链接到代码 )作为创建ui.R和server.R的基础脚本(与 ...

2016-07-13 19:39:45 0 261   r/ shiny
10 反应图中的闪亮ifelse不会更改基础用户输入选择

我的要求是根据用户输入更改图。 有6个主要过滤器,并且图也分为两部分。 该代码是关于第二部分的离群值图。 根据度量标准类型和统计信息类型,除用户选择的6个过滤器外,还应显示相应的直方图和其他统计信息。 我最初是从使用switch函数开始的,但是由于某种原因没有意义,因此尝试在反应函数 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM