2016-06-14 3 views
0

Есть ли способ изменить цвет ячейки-мишени в DT? или некоторые ячейки по строке и индексу col?DT change color on diag

Например, у меня есть:

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')) 
) 

Thats выглядит следующим образом: enter image description here

я могу изменить цвет для строки или ячейки (на основе клеток в текущей строке)

Но я не могу найти способ изменения цвета на основе индекса col и строки, например:

enter image description here

ответ

2

Найти один может быть не лучшим образом - генерировать rowCallback на основе ncol из data.frame

Как

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"),"}") 
               ))) 

Результат

enter image description here