У меня есть приложение Shinydashboard, в котором я хочу иметь возможность реактивно подмножествать данные несколькими переменными, а затем создавать столбец с результирующим подмножеством.
Я успешно создал реактивное подмножество, но график каждый раз показывает, что значения y одинаковы для всех значений x, даже несмотря на то, что напечатанное подмножество показывает, что они имеют разные значения.
Соответствующий пользовательский интерфейс:
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 является функцией закрытия, поднабор должен быть отформатирован по-другому, чтобы разделить его по значению реактивного столбца?
ggplot(data=subset(data, show_name =='Show 1'), aes(x=grp_lev, y= incidence, fill=grp_lev)) + geom_bar(stat = "identity")