Shiny R GGplot Barplot показывает неправильные значения, когда набор данных, на котором он основан, показывает правильное значение - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть приложение Shinydashboard, в котором я хочу иметь возможность реактивно подмножествать данные несколькими переменными, а затем создавать столбец с результирующим подмножеством.

Я успешно создал реактивное подмножество, но график каждый раз показывает, что значения y одинаковы для всех значений x, даже несмотря на то, что напечатанное подмножество показывает, что они имеют разные значения.

enter image description here

Соответствующий пользовательский интерфейс:

tabItem(tabName = "subset",
                            fluidRow(
                              box( uiOutput("codePanel")),
                              box(selectInput("groupDset", label="Select Category",
                                              choices = list("Evaluation"="evaluation",
                                                             "Incidence"="incidence",
                                                             "Involvement"="involve_idx",
                                                             "Funny" = "atts_raw_fun",
                                                             "Edgy" = "atts_raw_edgy",
                                                             "Disturbing" = "atts_raw_disturbing",
                                                             "Dramatic"= "atts_raw_dramatic",
                                                             "Mindless"= "atts_raw_mindless",
                                                             "Calming"= "atts_raw_calming",
                                                             "Intelligent"= "atts_raw_intelligent",
                                                             "Informative"= "atts_raw_informative",
                                                             "Scary"= "atts_raw_scary",
                                                             "Funny"= "atts_raw_funny",
                                                             "Relatable"= "atts_raw_relatable",
                                                             "Mean"= "atts_raw_mean",
                                                             "Size"="n_size"), selected = "evaluation")),
                              box(plotOutput(outputId = "bar1"))),

                            fluidRow(
                              box(width=NULL, DT::dataTableOutput("text"),style = "height:500px; overflow-y: scroll;overflow-x: scroll;"))
                              ),

Это сторона сервера

filt <- selectInput("codeInput",label ="choose code",
                  choices = as.list(unique(data$show_name)))

 output$codePanel <- renderUI({ filt

})

dataset<-reactive({ 

 subset(data, show_name == input$codeInput)  

 })
  dataset2<-reactive({ 

subset(dataset(), select = c(input$groupDset,"grp_lev"))

  })


output$text<-renderDataTable(dataset())
output$text2<-renderDataTable(dataset2())

 #This plot seems to say that input$groupDset is a constant
output$bar1<-renderPlot({
ggplot(data=dataset2(), aes(x=grp_lev, y=input$groupDset, fill=grp_lev)) + geom_bar(stat = "identity")
}) 

Когда график запускается снаружиблестящее приложение с теми же переменными, но статическими, оно работает как положено, а ось y имеет метки.Когда вызывается из приложения, ось у не сформулирована, что заставляет меня думать, что input$groupDset должен иметь неправильный тип данных.Запуск его y=as.numeric(input$groupDset) выдал ошибку.Может быть, из-за того, что dataset2 является функцией закрытия, поднабор должен быть отформатирован по-другому, чтобы разделить его по значению реактивного столбца?

enter image description here

    ggplot(data=subset(data, show_name =='Show 1'), aes(x=grp_lev, y= incidence, fill=grp_lev)) + geom_bar(stat = "identity")
...