R数据表为行背景着色,两列符合条件

时间:2018-06-08 13:18:36

标签: javascript r datatable

两个列满足特定条件时,我正在尝试为Datatable中的行着色。我使用formatStyle函数创建了一个'dummy'变量,但我不希望'dummy'列可见。

iris %>% 
  mutate(condition = (Sepal.Length < 5.0 | Petal.Length < 3.0) * 1) %>% 
  datatable() %>%
  formatStyle("condition", target = 'row', 
              backgroundColor = styleEqual(c(1, 0), c('red', 'white')))

enter image description here

我尝试使用javascript做类似的事情,但它不起作用(没有表格呈现):

script <- "
function( row, aData ) {
      if ( parseFloat(aData[0]) < 5.0 && parseFloat(aData[2]) < 3.0)
        $('td:eq(x), row).css('background-color', '#FC4A4A');
      else 
        $('td:eq(x), row)css('background-color', '#F2E8E8');
  }
"

iris %>% 
  datatable(options = list(rowCallback = JS(script)))

1 个答案:

答案 0 :(得分:0)

感谢this我找到了解决方案:

iris %>% 
  mutate(condition = (Sepal.Length < 5.0 | Petal.Length < 3.0) * 1) %>% 
  datatable(list(columnDefs = list(list(visible = FALSE, targets = c(6))))) %>% #hiding the 6th column
  formatStyle("condition", target = 'row', 
              backgroundColor = styleEqual(c(1, 0), c('red', 'white')))