在R中的DataTable中格式化特定单元格

时间:2017-07-13 20:58:17

标签: r dt

如何使用DT格式化特定单元格?在此示例中,如何格式化第一列中> 0?

的每个单元格
df = data.frame(
  V1 = c(5, -31, '-2'),
  V2 = c(-5, -7, '2'),
  V3 = c(4, -10, '22'))


DT = datatable(df) %>%
  formatStyle(...)

我认为类似backgroundColor = styleInterval(0, c('red', 'blue))(在formatStyle()中)可能会有效,但我没有运气。

1 个答案:

答案 0 :(得分:1)

以下链接对我来说非常有用 - 有各种格式排列......

https://rstudio.github.io/DT/010-style.html

特定于列,其基于>而更改0:

library(DT)

df = data.frame(
  V1 = c(5, -31, '-2'),
  V2 = c(-5, -7, '2'),
  V3 = c(4, -10, '22'))

DT = DT::datatable(df) %>%
     formatStyle('V1', backgroundColor = styleInterval(c(0),c('red','blue')))

可能是c()将剪切指定为向量...

以下是格式化单元格的示例(但这是一个轻微的黑客攻击 - 不确定自己是另一种方式)

  df = data.frame(
    V1 = c(5, -31, '-2'),
    V2 = c(-5, -7, '2'),
    V3 = c(4, -10, '22'))

现在创建一个包含'标记的列。值

  df$FLAG <- c(0,0.5,1)

现在创建您选择的样式/颜色并格式化数据框(然后我使FLAG(4)列不可见,看起来好像是格式化了单元格)

styles <- c("rgb(245,242,242)",
        "rgb(254, 204, 116)","rgb(255,83,83)")


datatable(df, caption = 'Test Format',
          options = list(dom='t',columnDefs = 
                                  list(list(visible=FALSE,
                                                targets=4)))) %>%
          formatStyle("V1","FLAG",
                 backgroundColor = styleEqual(c(0,0.5,1),styles))

注意dom =&#39; t&#39;只是省略了数据表过滤和分页;而columnDefs用于省略FLAG列