2016-03-31 39 views
0

rhandsontableを使用してNA値以外のすべての色を表示したいと考えています。たとえば、rhandsontableをインストールした状態でRコンソールで次のコードを実行した場合、最初の列は灰色になります。救済措置ではNAと数値を処理できないためです。しかし、1つのNAを削除して空白にすると、残りのセルが色を取り戻します。rhandsontableヒートマップのNA値を削除

> MAT = matrix(rnorm(50), nrow = 10, dimnames = list(LETTERS[1:10], 
+             letters[1:5])) 
> MAT[1,1] <- NA 
> rhandsontable(MAT) %>% hot_heatmap() 

私の実際のデータセットでは、多くのNA値があり、これらの各列が灰色で表示されることはありません。 rhandsontableにはNAの値をグレーアウトするだけでなく、残りの列を灰色にすることはできません。

答えて

0

私は...

をハックを持って、私は非常に特定の0.001とNA値を置き換えます。

そして私は、0.001ライトグレーとレンダラようにその色細胞ひねら:

# Used by hot_heatmap 
renderer_heatmap = function(color_scale) { 
    renderer = gsub("\n", "", " 
        function (instance, td, row, col, prop, value, cellProperties) { 
        Handsontable.renderers.TextRenderer.apply(this, arguments); 
        heatmapScale = chroma.scale(['%s1', '%s2']); 
        if (instance.heatmap[col]) { 
        mn = instance.heatmap[col].min; 
        mx = instance.heatmap[col].max; 
        pt = (parseInt(value, 10) - mn)/(mx - mn); 
        if (value == 0.001) { 
         td.style.backgroundColor = 'lightgrey'; 
        } else { 
         td.style.backgroundColor = heatmapScale(pt).hex(); 
        } 
        } 
        } 
        ") 
    renderer = gsub("%s1", color_scale[1], renderer) 
    renderer = gsub("%s2", color_scale[2], renderer) 
    renderer 
} 

なく、私の最高の時間を、より良い答えを歓迎します!