在反应部分使用输入变量Rshiny

时间:2018-05-11 17:51:04

标签: r shiny

我安静的新手Rshiny。我想捕获用户输入的信息(变量)并将它们传递给python脚本,我将在R本身中调用它。但最初我需要服务器代码的帮助,我在反应代码部分没有做正确的事情。

我的代码到现在为止:

library(shiny)
ui <- fluidPage(
  headerPanel( 
  titlePanel("RADP CR Prediction Tool"),
  br(),
  tags$head(tags$script(src = "message-handler.js")),
  textInput('Region', label = 'Enter the region'),
  textInput('Regulatory', label = 'Enter the regulatory status'),
  textInput('Description', label = 'Enter the description for the CR'),
  br(),
  br(),
  actionButton("goButton", "Go!"),
  mainPanel(

      # Output: Formatted text for caption ----
      h3(textOutput("caption", container = span)),

      # Output: Verbatim text for data summary ----
      verbatimTextOutput("summary"),

      # Output: HTML table with requested number of observations ----
      tableOutput("view")

    )
)

server <- function(input, output, session) {
region_input=reactive(input$Region)
regulatory_input <- reactive(input$Regulatory)
description_input <-reactive(input$Description)
observeEvent(input$do, {
    session$sendCustomMessage(type = 'testmessage',
      message = 'Thank you for clicking')
  })
}
shinyApp(ui, server)

当我运行代码时,它会给出错误:意外符号: “) 服务器“

我需要使用regulatory_input,description_input和region_input作为R变量,以便我可以进行进一步的分析。

1 个答案:

答案 0 :(得分:0)

你错过了一个括号。您关闭了mainPanelheaderPanel,但fluidPage函数的括号不合适。

你可以通过将光标放在第25行的)之后在RStudio中看到这一点,你会看到(中的开放headerPanel(被突出显示。您也可以选择代码,然后点击ctrl I进行缩进。您将看到server函数位于fluidPage函数的“内部”。

这可能看起来很小,但关注这样的细节对编程至关重要。根据我的经验,10次中有9次,当某些东西不能正常工作时,我会忘记这样的小事。

至于标题中的问题,您输入的值已经在变量中:input$ID_OF_INPUT。就像使用任何其他变量一样使用它。没有理由用以下内容复制值:variable <- reactive({input$id})。只需使用input$id,只要您使用variable