在交互式 R session 中从 Shiny 的应用程序返回值

标签 r shiny

我正在使用 shiny 制作一个互动小部件。小部件的目的不是创建一个独立的 Shiny 网络应用程序。相反,想法是在交互式 R session 中运行小部件,以允许用户使用 GUI 交互式地操作 session 中的数据。然后,Shiny 应用程序的输出应由该函数返回给用户 session 。

我的小部件的“真实”目的是交互式地选择绘图上的数据点,并返回选择的值作为函数的输出。然而,为了制作一个漂亮而简单的 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 函数中,用户可以从现有的交互式 session (number1) 中获取一个变量,然后运行 ​​multiply_me(number1) 来启动 Shiny 的小部件。然后,该小部件允许用户在 slider 上选择乘法因子并查看结果。

但是如何将计算结果 (number1 * number 2) 返回给交互式 R session ?

最佳答案

你可以使用stopApp:

multiply_me <-
  function(number1) {
    require(shiny)
    
    runApp(list(
      ui = fluidPage(
        selectInput('number2', label = 'Enter multiplication factor', choices = c(1, 2, 3)),
        textOutput('result'),
        actionButton('ok','OK')
      ),
      
      server = function(input, output) {
        output$result = renderText(number1 * as.numeric(input$number2))
        observe({
          if(input$ok){
            stopApp(number1 * as.numeric(input$number2))}
         })
       }
    ))
  }

multiply_me(1)
[1] 2

关于在交互式 R session 中从 Shiny 的应用程序返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63847125/

相关文章:

r - Shiny 的 Azure WebApp 作为 Azure SQL Server 的用户进行身份验证

r - Shiny - 年仅输入?

r - 在 Shiny 中显示 dbplyr 收集进度

r - R包的版权

r - 如何对数据框中的几行执行 "countif"?

r - 在 Shiny 模式下在 R Markdown 中插入 latex 方程

r - 将我所在的数据表的哪一页保存到 R 中的变量中

renderImage 不显示 - R Shiny(仅替代文本)

r - 防止 rgl 在包示例中打开窗口

r - HTTP状态为 '404 Not Found'时如何安装软件包