问题标签 [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 投票
0 回答
188 浏览

r - 如何使用 ggplot 在 Shinyr 中取消选择 renderPlot() 函数

下面是一个基本闪亮应用程序的功能代码,它允许用户选择一列,然后绘制所选列的 ggplot::histogram():

但是,我不确定为什么我无法从 renderPlot() 中删除 ggplot() 函数并且仍然得到相同的结果。我努力了:

但这导致没有绘制任何图。

我认为有一个简单的解决方法,但到目前为止它逃脱了我。

0 投票
1 回答
1565 浏览

r - 在闪亮的应用程序中修改和组合用户上传的反应数据框

我正在创建一个闪亮的应用程序,其中一部分是根据用户上传和修改的数据计算线性回归模型。我正在一步一步地做所有事情,所以在这里我将只向您展示一个测试应用程序的代码,涉及主要问题。这个想法是:

  1. fileInput用户使用in shiny从 .csv 文件上传数据
  2. 数据显示,然后,在检查后,用户可以修改他选择的变量
  3. 每个选定和修改的变量都与旧变量一起显示为一个新的反应数据表 - 我在这个的帮助下设法通过它: 将值添加到闪亮的反应表

现在,当指定初始数据集时,下面的代码一切正常:

但是,当我想包含第一步时,这意味着在运行应用程序上传数据集时,应用程序不会启动,因为现在我指的是可能不存在的反应性内容。这是一个更新的代码,具有从您自己的来源上传数据的功能:

我得到的错误:

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

当然,我错过了关于 Shiny 反应性的一些东西,但我彻底阅读了很多不同的文章、问题等,但找不到这个问题的答案。上传文件本身不是问题,因为在引用其内容之前,当我将反应数据集写入普通变量时,这段代码可以在不同的应用程序中完美运行。但是,当将数据写入时,我怎么能在这里做到这一点values$...?或者也许有另一种解决方案可以以这种方式处理来自外部源的反应数据?希望我把一切都说清楚了。

0 投票
1 回答
1663 浏览

r - 单个正在运行的 R Shiny 应用程序的多个会话之间的交互性

我想构建一个 R Shiny 应用程序,它能够将信息从一个正在运行的实例传递到其他可能的运行实例。到目前为止,我没有发现任何可以帮助我解决这个问题的方法,我希望能做对,而不是求助于全局变量和/或写入文件等(我在下面的示例中使用了全局变量,我知道这是一个不好的做法;而且我怀疑写入文件也不是一个好习惯)。

例如,假设我的 App.R 在服务器上运行,并且TimJackJohn将其打开。当JackJohn同时使用该应用程序并按下下例所示的按钮时,如何让Tim看到下面的内容?

应用程序R:

在浏览器中运行应用程序实例的各个用户按下多个按钮后所需的输出示例(都选择了唯一的 input$name,但显然唯一的会话 id 会更好):

示例用户案例

任何见解将不胜感激,谢谢!

0 投票
1 回答
1011 浏览

javascript - How to update the contents of htmlOutput in shiny using JavaScript

A shiny app displays a sentence.

When a user selects some part of sentence and clicks the Mark button to add markup, the sentence should be updated to reflect the action.

Example:
Sample input: A sample sentence for demo
Selection: sentence for
Desired output: A sample <markup> sentence for </markup> demo

Following is the shiny app code and the relevant JavaScript code:

addMarkup.js

Problem: The alert(result) does show the desired output, but the subsequent line does not update the content.

How can I achieve this functionality?

Please also suggest if a pure shiny solution exists (How can I achieve without involving JavaScript).

0 投票
0 回答
430 浏览

r - R Shiny: Conditionally use an Input as a Dependency in eventReactive

I'm creating a Shiny app with various plots. Some of them need different UI widgets, which I create using renderUI. For one of the plots, in order to get the labels to subset correctly (geom_label_repel), I think I need to use an input as an eventReactive dependency. The problem is, this input is only rendered for one particular plot and won't even exist for all the other plots. When I try putting it in the eventReactive, everything breaks.

I've tried putting it in the eventReactive conditionally, but either that isn't valid or I just don't know how to do it correctly. I've tried something like this:

Here is my rather extensive example. I've embedded more specific explanation into the app - I thought that would be more convenient than in the post. Hopefully that isn't bad form, if it is, please let me know:

0 投票
0 回答
81 浏览

r - 控制 Shiny 的反应性

我有一个闪亮的仪表板,它有 4 个选项卡,显示 4 个不同的图。最后一个图是 3D Plotly 图。它是参数驱动的,由两个输入文本控件和一个选择框提供。它工作正常,但速度很慢。

因此,我试图通过在参数控件旁边放置一个 submitButton 来控制其反应性,以便仅在用户单击 submitButton 时重绘它。问题是:它也会影响其他三个地块。有没有办法控制反应性,使其只影响所需的情节?

0 投票
2 回答
20716 浏览

r - 如何在 Shiny observeEvent 中监听多个事件表达式

我想要两个不同的事件来触发观察者。这里建议这应该有效。但似乎它只取决于第二个事件。

看看这个例子。

单击按钮 test1 后,没有任何反应。如果您单击按钮 test2 它会打印到您的控制台。按下 test2 按钮后,单击 test1 会打印消息。这是一种奇怪的行为。

链接中的另一个建议是使用

即使不单击按钮,它也会打印消息。

0 投票
1 回答
5488 浏览

r - R闪亮:如何更改reactiveValues对象中的值

我正在开发一些具有各种输入的闪亮应用程序。一般来说,我有一个设置,我希望用户按下按钮来接受输入值,然后创建需要设置的对象。当用户按下动画 sliderInput 对象上的播放按钮时,应该运行模拟。已创建的对象将在每次迭代时更新。

一个问题是其中一个对象是一个 reactiveValues 列表。每当用户更改设置并单击“接受”并运行它们时,我希望重新创建整组对象(删除早期值)。相反,reactiveValues 列表中的对象不会被覆盖,而是每次都使用下一个设置进行扩充。所以每个对象槽实际上包含几个对象。

要看到这一点,请尝试将最大迭代设置为一个值,点击接受,然后更改该值并再次接受,然后单击播放。你会看到它会打印出不同长度的 reactiveValues 对象。

我尝试了一些类似 rm() 的方法来尝试删除 reactiveValues。我也在这里尝试了解决方案(闪亮:如何更新 reactiveValues 对象?),但它也不起作用。

0 投票
1 回答
874 浏览

r - 在R中将Datatable转换为csv文件

我使用以下代码将 excel 文件上传到闪亮的 R 中:

服务器.r

ui.r 的相关代码:

然后我想将 MDPDataTable 保存为 csv 文件。我尝试使用 write.csv :

错误如下:

0 投票
1 回答
4381 浏览

r - 如何将“反应性”数据作为参数传递给 R Markdown?

我希望能够将反应传递data.table给我的 Rmarkdown 文档,该文档将对表格进行排序并打印顶部(例如 5 个)排序条目。

我一直在遇到“错误:x 必须是 data.frame 或 data.table” setorderv。我怀疑反应是扰乱is.data.table检查。

如何简单地将数据副本传递给 Rmd 文档?并删除反应性包装?

这是一个从反应性和 downloadHandler 库存示例拼凑而成的简化示例。我在 SO上查看了这个,它建议使用观察,但我不知道如何实现这个。谢谢我感谢一些帮助。

RMARKDOWN - SOtestreport.Rmd

应用程序.R