如何使用R有条件地在数据表中添加颜色?

问题描述 投票:0回答:1

在 R 数据表中,我想以红色显示“val1”和“val2”列的值。

如果这些值比每一行的“mymean”值大两倍以上或小两倍以上。

示例:

library(tibble)
library(DT)

mydf <- tribble(
  ~x,  ~mymean, ~val1, ~val2,
  "a", 3, 2, 8,
  "b", 5, 6, 1
)
# Using formatStyle() ?
datatable(mydf) |> 
  formatStyle(
    c("val1","val2"),
    color = "red"
  )

提前非常感谢!

r datatable
1个回答
0
投票

您可以添加两列,其中包含该值是否在所需区间内的信息。然后将它们隐藏在

columnDefs
中的数据表命令中,并使用
styleEqual
中的
formatStyle
来定义颜色:

library(tibble)
library(DT)
library(dplyr)

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

mydf <- mydf %>% mutate(val_1_in_interval = ifelse(val1 >= 0.5*mymean & val1 <= 2*mymean,1,0))
mydf <- mydf %>% mutate(val_2_in_interval = ifelse(val2 >= 0.5*mymean & val2 <= 2*mymean,1,0))

datatable(mydf,options = list(columnDefs = list(list(visible = FALSE,targets = c(5,6))))) |> 
  formatStyle(c("val1","val2"),c("val_1_in_interval","val_2_in_interval"),color = styleEqual(c(0,1),c('red','black')))
© www.soinside.com 2019 - 2024. All rights reserved.