DT を使用しているアプリケーションの 1 つで奇妙な問題が発生しています。すべての列名にマウスがテキストの上にある renderDataTable でテーブルをレンダリングしようとしています。コードは次のとおりです。
サーバー.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") )
))
新しい R スタジオ セッションでは、コードは最初の試行ではテーブルをレンダリングしませんが、コードを変更しなくても 2 回目の試行でテーブルをレンダリングします。公開された場所から、複数の試行にもかかわらず、テーブルはまったくレンダリングされません。理由がわかりません - 何か助けはありますか?