Добавление дополнительных меток над именами полей в datatable в R блестящем приложении - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь добавить несколько дополнительных меток над именами полей в сгруппированную таблицу данных в R, которая затем будет отображаться как таблица данных в приложении Shiny.

Например, с использованием iris данные, я хотел бы, чтобы каждый вид был сгруппирован, а затем суммировать их длины сепалов (максимальный - самый длинный, минимальный - самый короткий и т. д. c.) вместе с их шириной сепал, длиной лепестков и шириной лепестков. В этом примере добавлены дополнительные метки: «Длина Sepal», «Ширина Sepal», «Длина лепестка» и «Ширина лепестка» над их соответствующими подстолбцами Max / Avg / Min. Изображение здесь представляет собой Microsoft Excel того, что я ищу.

Это ссылка на возможное решение , но мне не повезло, пытаясь повторить это для нескольких меток. Вот мой код, который пытается воссоздать решение по приведенной выше ссылке с использованием данных радужной оболочки.

Пожалуйста, дайте мне знать, если нужна дополнительная информация. Заранее благодарю за любую помощь!

1 Ответ

0 голосов
/ 19 марта 2020

Этот ответ и этот ответ были очень полезны для обеспечения подхода, использующего DT, который может быть включен в ваше блестящее приложение.

library(htmltools)
library(DT)

sketch <- withTags(
  table(
    class = "display",
    thead(
      tr(
        th(colspan = 1, "", style = "border-right: solid 2px;"),
        th(colspan = 1, "", style = "border-right: solid 2px;"),
        th(colspan = 3, "Sepal Width", style = "border-right: solid 2px;"),
        th(colspan = 3, "Sepal Length")
      ),
      tr(
        th("Species", style = "border-right: solid 2px;"),
        th("#", style = "border-right: solid 2px;"),
        th("Longest"),
        th("Avg"),
        th("Shortest", style = "border-right: solid 2px;"),
        th("Widest"),
        th("Avg"),
        th("Narrowest"),
      )
    )
  )
)

datatable(grouped_df3, rownames = FALSE, container = sketch, 
          options = list(
            columnDefs = list(
              list(targets = "_all", className = "dt-center")
            )
          )) %>%
  formatStyle(c(1,2,5), `border-right` = "solid 2px")

Выход

datatable for shiny app with complex header

...