You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的datatable中按条件为指定列添加红色样式?

在DT包的DataTable中实现行内条件着色

要让val1和val2列中满足条件的数值显示为红色,你可以借助formatStyle()结合JavaScript表达式实现——因为着色条件依赖同一行的mymean值,需要动态判断每行的情况。

完整代码如下:

library(tibble)
library(DT)

mydf <- tribble(
  ~x,  ~mymean, ~val1, ~val2,
  "a", 3, 2, 8,
  "b", 5, 6, 1
)

datatable(mydf) |> 
  formatStyle(
    columns = c("val1", "val2"),
    color = JS("function(value, row) {
      const mean = row.mymean;
      if (value > 2 * mean || value < mean / 2) {
        return 'red';
      }
      return ''; // 使用表格默认文字颜色
    }")
  )

代码说明:

  • 通过JS()传入自定义函数,函数的value参数是当前单元格的数值,row参数包含当前行的所有数据,通过row.mymean可以获取对应行的均值。
  • 当数值大于mymean的两倍,或者小于mymean的二分之一时,返回'red'设置文字颜色为红色;否则返回空字符串,保留表格默认的文字颜色。

内容的提问来源于stack exchange,提问作者Damien Dotta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:51:06