条件格式数据表DT R
Conditional Formatting datatable DT R
我是r中的DT包的忠实粉丝。我想复制一些Excel条件格式的表格,但发现很难访问样式功能。
具体来说,我希望能够创建一个函数,允许用户调用数据表的行/列,并应用一些条件格式化,类似于如何在excel中完成。对于像我这样的R新手来说,这将是一个非常重要的功能,也可以加快其他人的过程。与热图不同,条件格式对于行/列不都是相同类型的情况很重要,因此您需要单独执行每一行。此外,能够指定什么是高价值和低价值的选项标记也是很好的。
我看到你可以创建换行符,如下面的例子
# create 19 breaks and 20 rgb color values ranging from white to red
brks <- quantile(df, probs = seq(.05, .95, .05), na.rm = TRUE)
clrs <- round(seq(255, 40, length.out = length(brks) + 1), 0) %>%
{paste0("rgb(255,", ., ",", ., ")")}
datatable(df) %>% formatStyle(names(df), backgroundColor = styleInterval(brks, clrs))
,但我不知道如何应用到单独的行,虽然它似乎你可以调用他们的名字,如看到这里通过formatStyle()和背景颜色,但你仍然没有阴影梯度,你需要知道行/列的名称,这是有点太多
在我看来,任何创建自定义函数的帮助都将对R数据表社区有很大的帮助。你可以尝试这样做:
# 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))
以防有人遇到这个,这里是我写的一个函数,它的功能类似于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))
}
所以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)'"
现在,如果有人能帮助我理解我如何改变调色板(说从红色过渡到绿色),我认为实现一个易于使用的功能并不难,尽管我仍然不确定如何可以参考使用其名称旁边的列/行(尽管似乎有一个参数valueColumns
,你可以调用
相关文章:
- 用程序搜索JQuery数据表中的文本
- 具有rowGrouping的数据表无法隐藏列
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 将单击事件添加到数据表
- 使用带有参数的数据表sAjaxSource
- 对角度数据表中括号内的数字进行排序
- 动态构建一个数据表与scriplets
- jquery数据表的自定义ko绑定
- 预览数据表单
- 如何在数据表中设置从Ajax响应选中的复选框
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- 数据表-隐藏/显示列
- 对损坏的子行进行排序的数据表
- 数据表排序但对行进行分组
- 数据表1.10,第列.转发器使用情况
- 如何将JSON编码的PHP数组发送到同一页面上的数据表
- jquery数据表在初始化时设置宽度
- 条件格式数据表DT R
- jQuery数据表事件Dt不着火
- 如何在Shiny DT数据表中预选行