在 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"
)
提前非常感谢!
您可以添加两列,其中包含该值是否在所需区间内的信息。然后将它们隐藏在
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')))