使R闪亮的renderPlot对文本输入有反应

时间:2017-02-26 22:11:42

标签: r bioinformatics shiny

我正在处理我的第一个Shiny应用程序,并且无法为我的绘图输入一个输入参数,因为用户输入到textInput框中。

这是一个简洁的代码示例,对于那些曾经使用过闪亮的人来说,这应该是熟悉的。

#ui.R
library(shiny)
shinyUI(fluidPage(
  titlePanel("Shiny App"),

  sidebarLayout(
    sidebarPanel(h2("Menu"),

mainPanel(h1("Main"),
tabPanel("Differential Expression",
         column(6,
               p("Input your gene of interest below"),
               textInput(uiOutput("GeneVariable"), label = h4("Gene of interest"),
               value = "Gjb2"),
               submitButton("Submit")),
         plotOutput("plot2"),

    )
  )
))

#server.R
shinyServer(function(input, output) {

 output$plot2 <- renderPlot({
    scde.test.gene.expression.difference("GeneVariable", 
                                         models=o.ifm, counts=cd, prior=o.prior)
  })

GeneVariable <- reactive({ ###I don't know what to put here#####
  })
})

我需要用户能够在&#34; GeneVariable&#34;中的textInput框中输入基因名称。位置并具有由scde.test.gene.expression.difference函数处理的名称。

感谢您的帮助和耐心,我是新手。

1 个答案:

答案 0 :(得分:1)

以下是解决这个问题的方法

#ui.R
library(shiny)
shinyUI(fluidPage(
  titlePanel("Shiny App"),

  sidebarLayout(
    sidebarPanel(h2("Menu"),

mainPanel(h1("Main"),
tabPanel("Differential Expression",
         column(6,
               p("Input your gene of interest below"),
               textInput("input$GeneVariable"), label = h4("Gene of interest"),
               value = "Gjb2"),
               submitButton("Submit")),
         plotOutput("plot2"),

    )
  )
))

#server.R
shinyServer(function(input, output) {

 output$plot2 <- renderPlot({
    scde.test.gene.expression.difference(input$`input$GeneVariable`, 
                                         models=o.ifm, counts=cd, prior=o.prior)
  })

GeneVariable <- reactive({input$GeneVariable})
  })
})

关键是使用input$'input$GeneVariable'基本上将用户的反应输入打印到绘图功能中。