Javascript 条件格式数据表dtr

Javascript 条件格式数据表dtr,javascript,css,r,dt,Javascript,Css,R,Dt,我非常喜欢R中的DT包。我想复制一些Excel有条件格式化的表,但发现很难访问样式特性 具体来说,我希望能够创建一个函数,允许用户调用datatable的行/列,并对其应用一些条件匹配,类似于excel中的操作方式。对于像我这样的新手用户来说,这将是一个非常附加的特性,而且对于其他人来说,这也只是加快了过程。与热图不同,当行/列的类型不完全相同时,条件格式非常重要,因此需要单独执行每一项。此外,它很高兴能够明确什么是高和低价值的选择标记 我看到您可以创建中断,如第页的以下示例所示 #创建19个中

我非常喜欢R中的DT包。我想复制一些Excel有条件格式化的表,但发现很难访问样式特性

具体来说,我希望能够创建一个函数,允许用户调用datatable的行/列,并对其应用一些条件匹配,类似于excel中的操作方式。对于像我这样的新手用户来说,这将是一个非常附加的特性,而且对于其他人来说,这也只是加快了过程。与热图不同,当行/列的类型不完全相同时,条件格式非常重要,因此需要单独执行每一项。此外,它很高兴能够明确什么是高和低价值的选择标记

我看到您可以创建中断,如第页的以下示例所示

#创建19个中断和20个rgb颜色值,范围从白色到红色
brks%格式样式(名称(df),背景色=样式间隔(brks,CLR))
但是我不知道如何应用于单个行,虽然看起来可以通过formatStyle()和背景色来命名,但是仍然没有着色渐变,需要知道行/列名,这有点太多了


创建自定义函数的任何帮助都将对R datatable社区IMO有很大帮助。

因此
backgroundColor
参数包含一个JS_EVAL类,它只是JavaScript,对于上面的代码(使用示例中设置的断点),值如下所示

"value <= -1.5504 ? 'rgb(255,255,255)' : value <= -0.9689 ? 'rgb(255,244,244)' : value <= -0.7885 ? 'rgb(255,232,232)' : value <= -0.6168 ? 'rgb(255,221,221)' : value <= -0.28425 ? 'rgb(255,210,210)' : value <= -0.1183 ? 'rgb(255,198,198)' : value <= 0 ? 'rgb(255,187,187)' : value <= 0.0754000000000001 ? 'rgb(255,176,176)' : value <= 0.2935 ? 'rgb(255,164,164)' : value <= 0.443 ? 'rgb(255,153,153)' : value <= 0.46745 ? 'rgb(255,142,142)' : value <= 0.5344 ? 'rgb(255,131,131)' : value <= 0.5647 ? 'rgb(255,119,119)' : value <= 0.979 ? 'rgb(255,108,108)' : value <= 1 ? 'rgb(255,97,97)' : value <= 1 ? 'rgb(255,85,85)' : value <= 1.1765 ? 'rgb(255,74,74)' : value <= 1.3743 ? 'rgb(255,63,63)' : value <= 1.65975 ? 'rgb(255,51,51)' : 'rgb(255,40,40)'"

“value您可以尝试以下方法:

 # create 19 breaks and 20 hex color values ranging from red to green using white around the median
brks <- quantile(df, probs = seq(.05, .95, .05), na.rm = TRUE)
colfunc <- colorRampPalette(c("red","white","green"))
clrs <- colfunc(length(brks) + 1)
datatable(df) %>% formatStyle(names(df), backgroundColor = styleInterval(brks, clrs))
#在中间带周围使用白色创建19个中断和20个从红色到绿色的十六进制颜色值

brks为了防止任何人遇到这种情况,我编写了一个函数,其功能类似于excel菜单

    column_cond_format = function(col_max, col_min, pal =c('red','white', 'green')) {
  stop_color_max = col_max ##set as max(column)
  stop_color_min = col_min
  brks <- quantile(c(stop_color_min,stop_color_max), probs = seq(.05, .95, .05), na.rm = TRUE) ## set max/min
  myPal = shades::gradient(pal, 18, space="Lab")
  clrs = c(myPal[1] , myPal, myPal[length(myPal)])

  return(list(brks= brks, clrs = clrs))
}
column\u cond\u format=函数(col\u max,col\u min,pal=c('red','white','green')){
stop_color_max=col_max##设置为max(列)
停止颜色最小值=颜色最小值
布鲁克斯
    column_cond_format = function(col_max, col_min, pal =c('red','white', 'green')) {
  stop_color_max = col_max ##set as max(column)
  stop_color_min = col_min
  brks <- quantile(c(stop_color_min,stop_color_max), probs = seq(.05, .95, .05), na.rm = TRUE) ## set max/min
  myPal = shades::gradient(pal, 18, space="Lab")
  clrs = c(myPal[1] , myPal, myPal[length(myPal)])

  return(list(brks= brks, clrs = clrs))
}