R闪亮代码以获取从ui输入的输出

时间:2018-08-20 10:59:11

标签: r shiny

我试图用闪亮的脚本编写脚本,该脚本具有两个输入并将输入存储在两个不同的变量中并使用这些输入变量运行代码。但是我遇到一个错误,该错误表示.getReactiveEnvironment()$中的错误currentContext():   没有活动的响应上下文,不允许进行操作。 (您试图做只能从反应式表达式或观察器内部完成的操作。) 以下是我的ui代码:

ui <- fluidPage(
  titlePanel("Network Model"),
  sidebarLayout(
    sidebarPanel(
      selectInput(inputId = "origin",
                  label = "Origin:",
                  choices = milk_runs$Origin),
      selectInput(inputId = "destination",
                  label = "Destination:",
                  choices = milk_runs$Dest),
      actionButton("go", "") 
    ),


    mainPanel(

      tableOutput(
        "view"))
  )
)

服务器代码:

server<- function(input, output){
  origin <- input$origin
  destination <- input$destination
  observeEvent(input$go,source("nr9.R")) 
               output$summary <- renderPrint({
                 #dataset <- datasetInput()
                 summary(Tnetwork)
               })

能否请您告诉我如何获得正确的结果。

1 个答案:

答案 0 :(得分:1)

我认为(如果您提供了一个完全可重现的示例,这将有所帮助)发生错误,因为您尝试在没有input$origin的情况下运行reactive()。除非放在reactive内,否则input $ origin不会根据用户输入而无效和更新。根据您提供的示例:

library(shiny)

ui <- fluidPage(
  titlePanel("Network Model"),
  sidebarLayout(
    sidebarPanel(
      selectInput(inputId = "origin", label = "Origin:", choices = c("A","B","C","D","E","F")),
      selectInput(inputId = "destination", label = "Destination:", choices = c("A","B","C","D","E","F")),
      actionButton("go", "GO")
      ),
    mainPanel( tableOutput( "view"))
    ) 
  ) 

server<- function(input, output){
  origin <- reactive(input$origin)
  destination<-reactive(input$destination)
  observeEvent(input$go,{
               cat(origin(),'nextword',destination(),sep="-")
  })

  output$view <- renderTable({data.frame(origin=origin(),destination=destination())})
}




shinyApp(ui, server)

应在激活“ go”后在控制台上打印“ origin-nextword-destination”,并且表应更新。我在您的示例中做了一些更改,因为它不可复制,但希望对您有所帮助。