闪亮的应用数据子集不起作用

时间:2016-04-25 22:06:18

标签: r shiny

我正在构建一个闪亮的应用程序。每当人们修改" Partido"时,ui应该做出反应。和#34; Estado"问题,但它不会发生。这是服务器和ui:

这是服务器应该做出反应的部分:

*shinyServer(function(input, output, session){

  reactivePoll({
if(input$partido == "DEM"){
  deputado <- subset(votos$Deputado,  votos$Partido == "DEM")
  if(input$estado == "AC"){
    deputado <- subset(subset(votos$Deputado, votos$Partido == "DEM"), 
                       votos$Estado == "AC")}
  else if(input$estado == "AM"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "AM")}
  else if(input$estado == "AP"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "AP")}
  else if(input$estado == "CE"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "CE")}
  else if(input$estado == "DF"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "DF")}
  else if(input$estado == "GO"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "GO")}
  else if(input$estado == "MA"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "MA")}
  else if(input$estado == "MS"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "MS")}
  else if(input$estado == "MT"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "MT")}
  else if(input$estado == "PA"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "PA")}
  else if(input$estado == "PR"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "PR")}
  else if(input$estado == "RJ"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "RJ")}
  else if(input$estado == "RO"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "RO")}
  else if(input$estado == "RR"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "RR")}
  else if(input$estado == "RS"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "RS")}
  else if(input$estado == "SC"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "SC")}
  else if(input$estado == "SP"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "SP")}
  else if(input$estado == "TO"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "TO")}
  else if(input$estado == "AL"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "AL")}
  else if(input$estado == "BA"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "BA")}
  else if(input$estado == "ES"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "ES")}
  else if(input$estado == "MG"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "MG")}
  else if(input$estado == "PB"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "PB")}
  else if(input$estado == "PE"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "PE")}
  else if(input$estado == "PI"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "PI")}
  if(input$estado == "RN"){
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "RN")}
  else{
    deputado <- subset(subset(votos$Deputado,  votos$Partido == "DEM"), 
                       votos$Estado == "SE")}
}
})*

和ui:

*library(shiny)
library(shinydashboard)
votos <- read.csv("votos1.csv", sep=",", header=TRUE, na.strings="NA",
                  encoding = "UTF-8")
part <- levels(votos$Partido)
lev <- levels(votos$Estado)
shinyUI(fluidPage(
  titlePanel("Votação do Impeachment - 2016"),
  p("Autora: Bruna Wundervald"),
  hr(),sidebarLayout(
    sidebarPanel(
      selectInput(inputId="partido",
                  label="Escolha o partido do Deputado",
                  choices=part,
                 selected=""),
      selectInput(inputId="estado",
                  label="Escolha o estado do Deputado",
                  choices=lev,
      selected=""),
      conditionalPanel("input.partido",
                       selectInput(inputId="deputado",
                  label="Escolha o Deputado",
                  choices=deputado,
                  selected=""))
  ),

  mainPanel(
   tabsetPanel(type = "pills",
               # tabPanel(title="Introdução",
                #         verbatimTextOutput("intro")),
                tabPanel(title="Fala",
                         verbatimTextOutput("fala"))
    )))))*

它根本不起作用:(

(服务器部分重复其他选项&#34; Partidos&#34;)

1 个答案:

答案 0 :(得分:1)

<强>被修改 我不确定你到底想做什么我为你自己准备了一些东西:)

server.ui

votos <- read.csv("~/Downloads/appp/votos1.csv", sep=",", header=TRUE, na.strings="NA",
                  encoding = "UTF-8")
part <- levels(votos$Partido)
lev <- levels(votos$Estado)
deputado <- levels(votos$Deputado)

shinyServer(function(input, output, session) { # added session

    data1 <- reactive({

      retval <- votos # show the whole dataset

      # show rows only with members of partido
      if (input$partido != "nadie") { 
        retval <- retval[retval$Partido == input$partido, ]
      }

      # show only rows with a particular estado or
      # only with partido and estado
      if (input$estado != "nadie") { 
        retval <- retval[retval$Estado == input$estado, ]
      }

      # show a particular deputado
      if (input$deputado != "nadie") {
        retval <- retval[retval$Deputado == input$deputado, ]
      }

      retval <- retval[ ,c("Deputado", "Fala")]
      retval
    })

  observe({
    # if you select a particular partido then you will be able to choose one
    # particular deputado of partido
    if (input$partido != "nadie") { 
      new_choices <- as.character(votos[votos$Partido == input$partido, "Deputado"])

      updateSelectInput(session, "deputado", 
                        choices = c("nadie", new_choices),
                        selected = "nadies")
    }
    if (input$partido == "nadie") {
      updateSelectInput(session, "deputado", 
                        choices = c("nadie", deputado),
                        selected = "nadie")

    }
  })

  output$fala <- renderTable({ data1() })

  })

ui.R

library(shiny)

shinyUI(fluidPage(


  shinyUI(fluidPage(
    titlePanel("Votação do Impeachment - 2016"),
    p("Autora: Bruna Wundervald"),
    hr(),
    sidebarLayout(
      sidebarPanel(
        selectInput(inputId = "partido", 
                    label = "Escolha o partido do Deputado", 
                    choices = c("nadie", part), 
                    selected = "nadie"), 

        selectInput(inputId="estado",
                    label = "Escolha o estado do Deputado", 
                    choices = c("nadie", lev), 
                    selected = "nadie"), 

        conditionalPanel("input.partido",
                         selectInput(inputId = "deputado", 
                                     label = "Escolha o Deputado", 
                                     choices = c("nadie", deputado), # changed
                                     selected = "nadie"))
      ),

      mainPanel(
        tabsetPanel(type = "pills",
                    # tabPanel(title="Introdução",
                    #         verbatimTextOutput("intro")),
                    tabPanel(title="Fala",
                             tableOutput("fala"))
                             # verbatimTextOutput("fala"))
        )))))

))