R Shiny DT 根据字符串模式更改单元格颜色
R Shiny DT change cell colour based on string pattern
我有一个 DT 数据 table,其中包含如下字符串:
我想更改单元格的颜色,使字符串包含“OK”的单元格变为绿色,字符串包含“ERROR”的单元格变为红色。我知道我可以使用 formatStyle
和 styleEqual
更改单元格颜色,但在匹配字符串模式时它似乎不起作用。
library(DT)
render <- c(
"function(data, type, row){",
" if(type === 'display'){",
" var color = /OK$/.test(data) ? 'green' : (/ERROR$/.test(data) ? 'red' : 'black');",
" data = '<span style=\"color: ' + color + ';\">' + data + '</span>';",
" }",
" return data;",
"}"
)
dat <- data.frame(
a = c("1 - OK", "1 - ERROR", "2 - ERROR"),
b = c("3 - ERROR", "2 - OK", "3 - OK")
)
datatable(
dat,
options = list(
columnDefs = list(
list(targets = c(1, 2), render = JS(render))
)
)
)
我有一个 DT 数据 table,其中包含如下字符串:
我想更改单元格的颜色,使字符串包含“OK”的单元格变为绿色,字符串包含“ERROR”的单元格变为红色。我知道我可以使用 formatStyle
和 styleEqual
更改单元格颜色,但在匹配字符串模式时它似乎不起作用。
library(DT)
render <- c(
"function(data, type, row){",
" if(type === 'display'){",
" var color = /OK$/.test(data) ? 'green' : (/ERROR$/.test(data) ? 'red' : 'black');",
" data = '<span style=\"color: ' + color + ';\">' + data + '</span>';",
" }",
" return data;",
"}"
)
dat <- data.frame(
a = c("1 - OK", "1 - ERROR", "2 - ERROR"),
b = c("3 - ERROR", "2 - OK", "3 - OK")
)
datatable(
dat,
options = list(
columnDefs = list(
list(targets = c(1, 2), render = JS(render))
)
)
)