如何在闪亮的数据表列中添加解释?

时间:2015-09-23 11:57:30

标签: r datatables shiny

我正在使用数据表编写一个闪亮的应用程序,我想制作一些小方块来解释每个列的含义。理想情况下,当您将光标移动到列的名称上时,我希望它们出现。

这是一个应用程序:

ui.R

library(shiny)

data(iris)

shinyUI(fluidPage(
  sidebarLayout(
    sidebarPanel(
      fluidRow(
        column(12,
               wellPanel(
                 radioButtons("species", label="Species:", 
                              choices=levels(iris$Species),
                              selected=levels(iris$Species)[1]

                 )
               )
        )
      )
    ),
    mainPanel(
      fluidRow(column(12,
                      dataTableOutput("table1")

      )
      )
    )
  )
)
)

server.R

library(shiny)
library(dplyr)
library(tidyr)

data(iris)  


shinyServer(function(input, output) {

  iris1 <- reactive({
    iris %>% 
      filter(Species %in% input$species)
  })

  output$table1 <- renderDataTable({
    iris1()
  })
})

当你将courser移到Species列名称上时,我希望有这样的感觉: enter image description here

甚至可能吗?请帮忙。

1 个答案:

答案 0 :(得分:3)

感谢this我设法制作了我想要的输出:

ui.R - 没有任何更改

<强> server.R

library(shiny)
library(dplyr)
library(tidyr)

data(iris)  

shinyServer(function(input, output) {

  iris1 <- reactive({
    iris %>% 
      filter(Species %in% input$species)
  })

  output$table1 <- renderDataTable(iris1(), callback = htmlwidgets::JS("
        var tips = ['Row Names', 'The Sepal Length', 'The Sepal Width',
                    'The Petal Length', 'The Petal Width'],
            header = table.columns().header();
        for (var i = 0; i < tips.length; i++) {
          $(header[i]).attr('title', tips[i]);
        }
"))
})

它使JavaScript变量tips中定义了解释框。