2016-11-06 68 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))