R Блестящая переменная упорядоченного или неупорядоченного списка
Я хотел бы использовать упорядоченный / неупорядоченный список, такой как следующий:
tags$ul(
tags$li("Item 1"),
tags$li("Item 2"),
tags$li("Item 3"),
tags$li("Item 4")
)
Однако я хотел бы, чтобы количество элементов в списке зависело от какого-то другого фактора; то есть не фиксированного размера. Это возможно?
Например, если мой символьный вектор окажется размером 3, то я хочу отобразить три элемента в нем в виде трех отдельных строк. Если вектор имеет размер 10, то это должен быть упорядоченный / неупорядоченный список с 10 уровнями.
Итак, просим две вещи здесь:
- Составьте упорядоченный / неупорядоченный список разного размера в зависимости от некоторой переменной
- Отображать определенный текст на каждом из уровней, который также варьируется в зависимости от того, какие строки отображаются
1 ответ
Shiny достаточно умен, чтобы, если вы передадите список тегов HTML uiOutput
он поместит каждый из них на отдельной строке в автоматически сгенерированном HTML-коде. Итак, вы можете использовать apply
составить список tags$li
объекты, а затем передать их uiOutput
чтобы отобразить их на своей странице:
library(shiny)
ui <- fluidPage(
tags$ul(
uiOutput('list')
)
)
server <- function(input, output, session) {
df <- data.frame(item = c('item 1', 'item 2', 'item 3'), num = c(2,3,4))
output$list <- renderUI({
apply(df, 1, function(x) tags$li(x['item'], "The SCORE IS: ", x['num']))
})
}
shinyApp(ui, server)
Вы можете расширить это, как вы хотите. Пока функция в apply
возвращает tags$li
объект, вы можете сделать его настолько сложным, насколько вы хотите.