R Блестящая переменная упорядоченного или неупорядоченного списка - PullRequest
0 голосов
/ 18 мая 2018

Я хотел бы использовать упорядоченный / неупорядоченный список, например, такой:

tags$ul(
    tags$li("Item 1"),
    tags$li("Item 2"),
    tags$li("Item 3"),
    tags$li("Item 4")
)

Однако я бы хотел, чтобы количество элементов в списке зависело от какого-то другого фактора;то есть не фиксированного размера.Возможно ли это?

Например, если мой символьный вектор окажется размером 3, то я хочу отобразить три элемента в нем в виде трех отдельных строк.Если вектор имеет размер 10, то это должен быть упорядоченный / неупорядоченный список с 10 уровнями.

Итак, просим две вещи здесь:

  1. Сделать упорядоченный / неупорядоченный список изменяющимсяразмер зависит от некоторой переменной
  2. Отображение определенного текста на каждом из уровней, который также зависит от того, какие строки отображаются

1 Ответ

0 голосов
/ 18 мая 2018

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

...