SelectInput in Shiny

时间:2016-08-23 16:29:02

标签: r shiny

我正在尝试构建一个简单的Shiny App,但无法让它工作。我想选择一个州,然后应用程序应该计算样本的平均值。测量臭氧水平。这是我的ui.R代码:

require(shiny)
fluidPage(pageWithSidebar(
headerPanel("Ozone Pollution"),
sidebarPanel(
h3('State'),selectInput("inputstate","Select State",state.name)),
mainPanel(
h3('Results'),verbatimTextOutput("res")
)
))

这是我的server.R程序:

require(dplyr)
library(shiny)
shinyServer(
function(input, output) {
stat_state<-reactive({filter(ozone_2015,State.Name==input$inputstate)})
output$res<- renderPrint({mean(stat_state$Sample.Measurement)})
}
)

任何提示?感谢.....

1 个答案:

答案 0 :(得分:1)

虽然我无法复制您的数据集,因为我不知道臭氧来自哪里,但我认为您的问题是您不是指这样的“被动”对象:

stat_state()

一旦你创建了一个被动对象,除了被动值和输入$变量之外,你需要在变量的末尾用'()'来引用它。

以下是使用一些代码和不同数据集的示例。希望这会有所帮助。

require(shiny)

ui <- 
fluidPage(pageWithSidebar(
  headerPanel("Population"),
  sidebarPanel(
    h3('State'),selectInput("inputstate","Select State",state.name)),
  mainPanel(
    h3('Results'),verbatimTextOutput("res")
  )
))

server <- function(input,output){
  require(dplyr)

  sample.data <- reactive({as.data.frame(state.x77)})

      stat_state <- reactive({sample.data()[which(row.names(sample.data()) == input$inputstate),]})
      output$res <- renderPrint({stat_state()$Population})
    }
  )
}


shinyApp(ui = ui, server = server)