如果条件在闪亮的数据表中的行中任何位置出现,是否可以获取formatStyle

时间:2019-07-13 07:21:39

标签: r shiny

我知道我可以对闪亮的数据表使用条件格式,但是它似乎基于指定列。如果该行中的任何位置满足条件,是否可以突出显示一行?

到目前为止,我已经使用过(from the datatable examples):

library(DT)
options(DT.options = list(pageLength = 5))
df = as.data.frame(cbind(matrix(round(rnorm(50), 3), 10), sample(0:1, 10, TRUE)))


datatable(df) %>% formatStyle(
  'V6',
  target = 'row',
  backgroundColor = styleEqual(c(0, 1), c('gray', 'yellow'))
)

但是我希望它搜索所有列,而不仅仅是V6。

1 个答案:

答案 0 :(得分:1)

您可以定义一个用于对行进行样式设置的附加虚拟列:

library(DT)

## add style column
df$styleCol <- apply(df, 1, function(x) as.numeric(any(x >= 1)))

## highlight rows in yellow if any column >= 1
datatable(df, options = list(
            columnDefs = list(list(targets = 6, visible = FALSE))
        )) %>% formatStyle(
        "styleCol",
        target = "row",
        backgroundColor = styleEqual(c(0, 1), c("gray", "yellow"))
    )

数据

set.seed(1)
df <- as.data.frame(cbind(matrix(round(rnorm(50), 3), 10)))