Проблема в вашем реактивном df pe
. В блестящем логе c, когда приложение запускает renderPlotly
, оценивается ваша нестандартная оценка !!sym(input$DB)
, и оно пытается получить объект name
, а затем ищет фрейм данных, потому что ractive
использует ленивый загрузка в блестящем. Это означает, что реактивная программа будет запускаться только тогда, когда этого требует какой-либо другой код, но ваш !!sym(input$DB)
уже запущен, и я думаю, что есть задержка между поиском нестандартной оценки необходимого фрейма данных и запуском реактивного. Итак, происходит ошибка.
У вас есть два решения: во-первых, измените !!
на оценку строки:
ggplotly(
ggplot(as.data.frame(tbl), aes_(input$DB, 'Freq', fill = 'sts'))
)
Во-вторых, так как ваш pe
является фиксированным df, нет необходимости используйте reactive
server <- function(input, output, session) {
pe<-{
sts<-c("Rev","Rev")
sID<-c("123","124")
snID<-c("23","34")
name<-c("s","d")
data.frame(sts,sID,snID,name)
}
output$dbs<-renderUI({
pickerInput("DB", "Select Database/s",
choices = c("name","snID"),
multiple = F,options = list(`actions-box` = TRUE),
selected = "name")
})
output$fn<-renderPlotly({
#2.2 MAKING A TABLE for public.exists
tbl<-table(pe[[input$DB]], pe$sts)
ggplotly(
ggplot(as.data.frame(tbl), aes(!!sym(input$DB), Freq, fill = sts))
)
})
}