2015-09-23 14 views
5

Sto scrivendo un'app lucida con l'aiuto dei datatables e vorrei creare delle piccole scatole che spieghino cosa significa ogni colonna. Idealmente, vorrei che comparissero quando spostate il cursore sul nome della colonna.Come si può aggiungere una spiegazione alla colonna datatable lucida?

Ecco un app:

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() 
    }) 
}) 

e vorrei avere sth come questo, quando si sposta il courser sul nome della colonna Specie: enter image description here

È possibile? Per favore aiuto.

+0

Sì, è possibile, ma non hai mostrato alcun codice di inizializzazione dei dati, quindi non c'è molto da lavorare con ... – markpsmith

+0

Non renderizzaDataTable rendere un datatable nell'app? Sembra uno :) – potockan

+0

Se no, potresti scrivere un awser per i datables? – potockan

risposta

3

Grazie a this sono riuscito a fare un'uscita che volevo:

ui.R - senza alcuna modifica

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]); 
     } 
")) 
}) 

Rende scatole spiegazione definiti nella variabile JavaScript tips.

Problemi correlati