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
, вы можете сделать его настолько сложным, насколько захотите.