【发布时间】:2020-12-29 23:32:25
【问题描述】:
我正在使用闪亮制作一个小的交互式小部件。小部件的目的不是创建一个独立的闪亮 Web 应用程序。相反,这个想法是在交互式 R 会话中运行小部件,以允许用户使用 GUI 交互式地操作会话中的数据。然后,Shiny 应用程序的输出应由该函数返回给用户会话。
我的小部件的“真正”目的是交互式地选择绘图上的数据点,并返回选择的值作为函数的输出。然而,为了制作一个漂亮而简单的 REPREX,我选择了一个更简单的场景:
multiply_me <-
function(number1) {
require(shiny)
shinyApp(
ui = fluidPage(
selectInput('number2', label = 'Enter multiplication factor', choices = c(1, 2, 3)),
textOutput('result')
),
server = function(input, output) {
output$result = renderText(number1 * as.numeric(input$number2))
}
)
}
在 multiply_me 函数中,用户可以从现有的交互式会话 (number1) 中获取一个变量,然后运行 multiply_me(number1) 来启动闪亮的小部件。然后,该小部件允许用户在滑块上选择乘法因子并查看结果。
但是如何将计算结果 (number1 * number 2) 返回到交互式 R 会话?
【问题讨论】:
-
您可以使用
<<-将结果存储在全局环境中。 -
谢谢@StéphaneLaurent。尽管如果可能的话,我宁愿能够将值作为函数返回,以便具有更大的安全性和灵活性。对于更复杂的现实世界应用程序,我希望能够(例如)多次运行应用程序以生成不同的输出,以查看在小部件中选择不同数据点的效果。
-
@DGreenwood 您是否明白了您闪亮项目的“真正目的”?我正在开发一些非常相似的东西,并且一直在努力寻找如何从图中返回选定值的示例代码(我也是闪亮的新手)。如果您可以分享任何有启发性的内容,或者指出您使用的资源的方向,我将非常感激! :)