Попытка создать блестящее приложение с раскрывающимся меню, позволяющим выбирать графики, которые являются подэлементами списка, который сохраняется в глобальной среде.
Графики расположены во втором подэлементе каждого элемента списка.
e.g. list = ([[dataframe1, plot1], [dataframe2, plot2], etc])
Приложение, которое я пытаюсь создать, предоставлено:
choices = paste0("list[[1]][[", 1:2, "]]")
ui <- shinyUI(fluidPage(selectInput("selectPlot",
"Choose desired country",
choices),
plotlyOutput("plot")))
server <- shinyServer(function(input,output){
output$plot <- renderPlotly({
return(get(input$selectPlot))
})
})
shinyApp(ui,server)
Однако графики не отображаются, и я получаю следующую ошибку: ** Предупреждение: ошибка в get: объект 'anom [[1]] [[1]]' не найден *
Если я сохраню участки по отдельности в среде, то этот подход работает. Однако я пытаюсь получить доступ к участкам через этот список, который уже существует!
Добавление воспроизводимого примера:
ds1 <- data.frame(sample(1:10, 10), sample(11:20, 10))
ds2 <- data.frame(sample(1:10, 10), sample(11:20, 10))
p1 = plot_ly(x = ~ds1[[1]], y = ~ds1[[2]]) %>% add_markers()
p2 = plot_ly(x = ~ds2[[1]], y = ~ds2[[2]]) %>% add_markers()
l = list(list(ds1, p1), list(ds2, p2))
#want to access p1 and p2 from within the list to create drop down menu graph
choices.p = paste0("l[[1]][[", 1:2, "]]")
ui <- shinyUI(fluidPage(selectInput("selectPlot",
"Choose desired country",
choices.p),
plotlyOutput("plot")))
server <- shinyServer(function(input,output){
output$plot <- renderPlotly({
return(get(input$selectPlot))
})
})
shinyApp(ui,server)