I'm having a strange issue with one of my applications using DT. I'm trying to render a table with renderDataTable with all column names have mouse over text. Here is the code:
server.R
.libPaths("/usr/lib64/R/library")
library(shiny) # 0.12.1
library(data.table) # 1.9.4
library(DT) # 0.1
options(DT.options = list(pageLength = 5,lengthMenu = c(5,10, 25, 100),orderClasses=TRUE))
rb <- fread("r1.csv")
## r1.csv has the following data(subset) :
# "c1","c2","c3","c4"
# "10011","7","999999","3"
# "10597","6","114182","1"
# "20101","7","999999","3"
# "20102","7","999999","3"
non_factor_columns<-names(rb)[!names(rb) %in% c("c1","c3")]
rb[,(non_factor_columns):=lapply(.SD, as.factor),.SDcols=non_factor_columns]
cols<-c("c1","c2","c3","c4")
labels<-c("This is column 1","This is column 2","This is column 3","This is column 4")
rbcollabels<-data.table(cols,labels)
setkey(rbcollabels,cols)
prefcols<-c("c1","c3")
setcolorder(rb,union(prefcols,colnames(rb)[!colnames(rb) %in% prefcols]))
r<-as.data.table(colnames(rb))
gotlabels<-rbcollabels[r]
collabelstr<- paste0("thead(tr(",paste0("th('",gotlabels$cols,"'",",title=","'",gotlabels$labels,"')",collapse=","),"))")
shinyServer(function(input, output) {
sketch = htmltools::withTags(table(
class = 'display',eval(parse(text=collabelstr))
)
)
output$table1 <- renderDataTable({
datatable(rb, options=list(dom='C<"clear">Rlrtip',colVis = list(activate = 'mouseover', restore = 'Restore', showAll= 'Show all', showNone= "Show none" )),
rownames=F,container=sketch,filter='top',extensions = c('ColVis','ColReorder')
)
})
})
ui.R
.libPaths("/usr/lib64/R/library")
library(shiny)
shinyUI(fluidPage(
tags$head( tags$style("#table1 {color: blue; }")),
tags$head( tags$style("#table1 th {background-color: yellow; }")),
tags$head( tags$style("#table1 td,th {border: thin solid gray; }")),
tags$head( tags$style("#table1 tr {background-color: Gainsboro; }")),
tags$head( tags$style("#table1 tr:nth-child(odd) {background-color: Lavender; }")),
tags$head( tags$style("#table1 th:hover {color: red; }")),
title = "Test Data",
h3("Test Data ",align="center",style="color:red"),
mainPanel( dataTableOutput("table1") )
))
In a new R studio session, the code doesn't render the table in the first attempt, but will render it in the 2nd attempt without any modifications to the code. From the published location, the table doesn't render at all despite multiple attempts. I cannot figure out why - any help?