#r #shiny
Вопрос:
Есть ли способ дать название каждому потоку жидкости, как показано ниже. Здесь применяется lapply, чтобы создать цикл. Так что нет необходимости создавать 4 раза…………………………
Пример кода ниже
library(shiny) library(plotly) ui lt;- fluidPage( htmltools::findDependencies(plotlyOutput("")), htmlOutput("res") ) server lt;- function(input, output, session) { output$res lt;- renderUI({ br() ## method 1 asd lt;- c("p1","p2","p3","p4") output$res lt;- renderUI({ fluidRow( lapply(asd, function(i) { column(6,plotlyOutput(paste0(i)),br(),br()) }) ) }) }) output[["p1"]] lt;- renderPlotly({ plot_ly() }) output$p2 lt;- renderPlotly({ plot_ly() }) output$p3 lt;- renderPlotly({ plot_ly() }) output$p4 lt;- renderPlotly({ plot_ly() }) } shinyApp(ui, server)
Комментарии:
1. Вывод, который вы создаете, является адаптивным. Технически, у вас есть только один
fluidRow
. Количество фактических строк зависит от размера экрана. К чему я клоню: я не думаю, что это выполнимо с помощью Shiny. Я не уверен, что может сделать Javascript, но вам, вероятно, следует добавить его в качестве тега к вашему вопросу, чтобы привлечь некоторых людей с более глубокими знаниями о Javascript.