2016-11-06 70 views
0

我是R的DT包的忠实粉丝。我想复制一些有条件格式化的Excel表格,但发现难以访问样式功能。条件格式化数据表DT R

具体而言,我希望能够创建一个函数,允许用户调用数据表的行/列并对其应用一些条件表格,与在Excel中的操作类似。对于像我这样的新手R用户来说,这将是一个额外的功能,并且也为其他人加快了这一进程。与热图不同,条件格式对于行/列不是全部相同类型时很重要,因此您需要单独执行每一行。也很高兴能够说明什么是高价值和低价值的选择标记。

我看你可以this

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

造成断,在后续的例子,但我不知道如何应用到各行,但好像你可以通过名字来称呼他们,看到here通过formatStyle()和背景颜色,但你仍然没有阴影渐变,你需要知道行/列的名称,这是有点太

创建自定义函数的任何帮助将是一个大帮助R数据表社区IMO。

回答

-1

所以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)'" 

现在,如果有人可以帮助我了解如何改变颜色pallett(说从红色过渡到绿色)我认为它不会很难实现一个易于使用的功能,但我仍然不确定如何可以参考列/行旁边使用它名称(虽然似乎有一个参数valueColumns,你可以拨打

1

你可以尝试这样的事情:

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