如何根据R中的另一个矩阵更改DT表的字体颜色

时间:2017-12-14 19:03:17

标签: r datatable

我有两个矩阵:第一个包含我要显示的数据,另一个包含将用于选择字体颜色的值。问题是我不知道如何使用R中的DT包基于第二个矩阵更改颜色,我已经针对主矩阵中的列完成了但是无法弄清楚如何对另一个矩阵这样做。

这就是我所拥有的:

data = matrix(rnorm(100),10,10)
colnames(data) = as.character(seq(as.Date(Sys.Date()),as.Date(Sys.Date()+10), length.out = 10))
data_2 = matrix(runif(100),10,10)
colnames(data_2) = as.character(1:10)
data_final = cbind(data,data_2)

datatable(data_final,
          options = list(paging = FALSE, dom = 'tip',columnDefs = list(list(visible=F,
          targets =  c(10:20)))))%>%
  formatPercentage(colnames(data_final),2)

我认为应该是这样的:

  formatStyle(1:4, valueColumns=5:8,
              color = JS("value < 0 ? 'red' : value > 0 ? 'green' : 'blue'"))

其中1:4是我要更改颜色的列,5:8是要比较的值,但在color = JS中它应该以某种方式更改它将列1与列进行比较5,等等决定了颜色。

1 个答案:

答案 0 :(得分:0)

您可以像这样使用styleInterval

formatStyle(columns = 1:10, valueColumns = 11:20, color = styleInterval(c(-1e-10, 1e-10), c('red', 'blue', 'green')))

我们在-1e-10+1e-10使用了两个中断。介于两者之间的一切都是蓝色的。