问题标签 [shiny-reactivity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
82046 浏览

r - R闪亮将反应传递给selectInput选项

在一个闪亮的应用程序(由 RStudio 提供)中,在服务器端,我有一个反应式,它通过解析 a 的内容返回一个变量列表textInput。然后在selectInput和/或中使用变量列表updateSelectInput

我不能让它工作。有什么建议么?

我做了两次尝试。第一种方法是outVar直接使用反应式进入selectInput. 第二种方法是outVarupdateSelectInput. 两者都不起作用。

服务器.R

用户界面

不久前,我在shiny-discuss 上发布了同样的问题,但它引起的兴趣不大,所以我再次道歉,https: //groups.google.com/forum/#!topic/shiny-讨论/e0MgmMskfWo

编辑 1

@Ramnath 好心地发布了一个似乎有效的解决方案,由他表示为Edit 2 。但是该解决方案并不能解决问题,因为它textinput是在ui侧面而不是在server侧面,就像在我的问题中那样。如果我将textinputRamnath 的第二次编辑移到server一边,问题再次出现,即:没有显示和 RStudio 崩溃。我发现包裹input$text会使as.character问题消失。

编辑 2

在进一步的讨论中,Ramnath 向我展示了当服务器尝试outVar在其参数返回之前应用动态函数时出现问题textinput。解决方法是先检查是否is.null(input$inBody)存在。

检查参数是否存在是构建闪亮应用程序的关键方面,那么为什么我没有想到呢?好吧,我做到了,但我一定做错了什么!考虑到我在这个问题上花费的时间,这是一次痛苦的经历。我在代码之后展示了如何检查是否存在。

下面是 Ramnath 的代码,textinput移到了server一边。它会使 RStudio 崩溃,所以不要在家里尝试。(我使用了他的符号)

我通常检查存在的方式是这样的:

Ramnath 的代码更短:

两者似乎都有效,但从现在开始我将按照 Ramnath 的方式进行操作:也许我的构造中的不平衡支架早些时候阻止了我进行检查?Ramnath 的检查更直接。

最后,我想指出一些关于我的各种调试尝试的事情。

在我的调试任务中,我发现有一个选项可以在服务器端对“输出”的优先级进行“排名”,我对此进行了探索以试图解决我的问题,但由于问题出在其他地方,所以没有奏效。尽管如此,知道这一点很有趣,而且目前似乎还不是很为人所知:

在那个任务中,我也尝试过 try

这非常接近,但仍然没有解决它。

我偶然发现的第一个解决方案是:

我想知道它为什么起作用会很有趣:是因为它使事情变慢了吗?是因为as.character“等待”input$text为非空吗?

无论情况如何,我都非常感谢 Ramnath 的努力、耐心和指导。

0 投票
1 回答
2399 浏览

r - R闪亮不显示数据表

我正在制作一个闪亮的应用程序,它显示带有数据库查询结果的数据表。我使用内部包来检索数据,我确信它可以正常工作。

当我想显示其中一个数据库的数据表时,我没有问题,但是当我想显示另一个时,表根本不会出现。

我使用响应函数来检索数据并使用 renderDataTable() 来显示它。这是代码:

0 投票
2 回答
3451 浏览

r - 我可以在响应对象更改时保存它的旧值吗?

注意:在提出答案后,我改写了问题以使其更清晰。

有时在shiny应用程序中。我想利用用户为小部件选择的值,以及为同一小部件​​选择的先前值。这可能适用于从用户输入派生的反应值,我想要旧值和新值。

问题是,如果我尝试保存小部件的值,那么包含该值的变量必须是反应性的,否则每次小部件更改时它都不会更新。但是,如果我将值保存在响应式上下文中,它将始终给我当前值,而不是前一个值。

如何保存小部件的先前值,但每次用户更改小部件时仍然更新它?

有没有一种方法不需要actionButton在用户每次更改时都使用?通过添加一个来避免actionButton可能是可取的,否则是不必要的,并且会为用户带来过多的点击。

0 投票
1 回答
21692 浏览

r - R Shiny:反应性错误

我正在构建我的第一个 Shiny 应用程序,目的是创建一个抵押计算器和可调整的摊销计划。我可以使用 runApp() 获得以下代码来呈现,但它不起作用(即,不输出任何值,也不显示图形)。此外,它会在 RStudio 的控制台中生成以下错误:

“.getReactiveEnvironment()$currentContext() 中的错误:如果没有活动的反应上下文,则不允许操作。(您试图做一些只能从反应表达式或观察者内部完成的事情。)”

对于背景,我正在运行:Win 7, 64-bit OS | R v3.1.1 | RStudio v0.98.944

并尝试实现此处定义的过程但没有运气: R R Shiny 中的 Shiny Tutorial Error - Numeric Input without Selectors

用户界面

服务器.R

提前感谢您的帮助!

0 投票
1 回答
3134 浏览

r - 如何在闪亮的单选按钮中做出反应?

这就是我所拥有的,我认为问题在于 ui.R 首先运行,因此未定义函数 progs() (或者我不知道如何执行反应函数)。我的错误如下所示:

lapply(obj,function(val){:找不到函数“progs”中的错误

我的代码如下所示:

用户界面

服务器.R

0 投票
1 回答
971 浏览

r - 反应性地更新两组单选按钮 - 闪亮

我已经阅读了这篇文章(How do I make the selections in radioButtons reactive in Shiny?),它向我展示了如何以反应方式更新radioButtons。但是,当我尝试从相同的数据更新两组按钮时,只有一组呈现。例子:

服务器:

用户界面:

在上面,单选按钮确实会更新,但仅按代码顺序更新第一组按钮,即“长度”更新但“宽度”不更新。如果我把它们反过来写,“宽度”会更新,但“长度”不会。我是否需要定义一个新会话?

0 投票
1 回答
2630 浏览

r - 如何在闪亮的反应表达式中使用先前的反应值?

我的反应式表达式产生一个数值向量。有没有办法可以保存以前渲染的值并在下次重新使用它?我尝试创建一个额外的反应式表达式来保存值,然后在使用第一个反应式表达式时再次调用它,但这会导致以下错误:

我无法上传整个示例,因为它是一项调查,属于机密。但是,我正在尝试深入了解我的 server.R 文件。

问题是 yvals 是基于 ui.R 的输入。但是,xvals 不是(至少不是直接的)。因此,当 xvals 更新时,它应该将旧/以前的值作为输入。我很抱歉弄得一团糟——我知道如果没有可重复的例子,很难帮助我。但基本上,我只想修复之前的反应结果并在下次重新使用它。

0 投票
2 回答
1108 浏览

r - 闪亮的反应式下拉菜单行为不端(带有数字输入)

这是一个汇总块的模型,显示了在其他地方绘制的值的前 10 位或后 10 位。

问题

更改变量名称或排序方向可以正常工作,但是更改limit1要显示多少数据的限制(更改为更高的值有时会起作用,但并非总是如此。这很奇怪!

那么好吧

启动时默认应用程序

不好

选择 5 时的应用

代码

的子集是否有问题data.table?还是我使用反应式的方式?闪亮的专家 - 我会很感激我做错了什么,以及为什么我还没有完全掌握反应性。抱歉,代码有点复杂,因为主要代码位于不同的文件结构中。

编辑:解释

@Pork Chop 在下面的精彩评论解释说,min最终可能会迫使所有人成为角色。因此,当面对 226 和“5”时,它变成了对“226”和“5”的测试,并且在逐个元素的基础上,“2”击败了“5”,因此选择“226”作为最小值,并且所有行都显示在其中。

但是对于 10 和 20,它不是例如“226”和“10”第一个数字 1<2。并显示了正确的最小值。课程:观察类型并确保as.numeric在需要时将 SelectInput input$vars 设置为。

谜底解释!

0 投票
1 回答
3473 浏览

r - 如何在 R Shiny 中构建动态过滤器?

我正在构建一个具有上传功能和类别变量过滤功能的应用程序。这样,用户可以通过指定列和值来进行一些数据操作。但是,过滤功能不起作用。代码简化如下:

0 投票
0 回答
37 浏览

r - R Shiny:从渲染图中删除项目并再次引用它

我在一个闪亮的应用程序的 renderPlot 选项中有代码,我希望将其拉入一个单独的反应上下文。但是,我无法弄清楚如何执行此操作并且仍然能够参考该表。

我想要的是能够将第一部分拉到它自己的反应上下文中,然后在 renderPlot 中引用它,但考虑到矩阵的数据源取决于其中一个输入,我不确定如何做到这一点. 提前致谢!

当前代码:

所需代码(概念)