2016-06-14 6 views
0

Gibt es eine Möglichkeit, die Farbe der Zielzelle in DT zu ändern? oder einige Zellen nach Zeilen- und Col-Index?DT change color on diag

Zum Beispiel habe ich:

library(DT) 
set.seed(123) 
options(DT.options = list(pageLength = 5)) 
df = as.data.frame(cbind(matrix(round(rnorm(50), 3), 10), sample(0:1, 10, TRUE))) 

datatable(df)%>% formatStyle(
'V6', 
    backgroundColor = styleEqual(c(0, 1), c('gray', 'yellow')) 
) 

Das ist wie folgt aussehen: enter image description here

Ich kann für Zeile oder Zelle Farbe ändern (basierend auf Zellen bei aktuellen Zeile)

Aber ich kann nicht finden Weise, Farbe zu ändern, die auf Spalten- und Spaltenindex wie folgt basiert:

enter image description here

Antwort

2

Finden kann man nicht beste Weg sein - rowCallback

enter image description here

basierend auf ncol von data.frame

Wie

datatable(df,options = list(rowCallback=JS(paste("function(row, data,index) {", 
               paste(sapply(1:(ncol(df)),function(i) paste(" 
                var ind_1=",i,"; 
                $(this.api().cell(row,ind_1).node()).css({'background-color':index +1>ind_1 ? '#CCFFCC' : index+1 < ind_1 ? 'red' : 'yellow'}); 
                " 
               )),collapse = "\n"),"}") 
               ))) 

Ergebnis erzeugen