有条件地突出显示 tableHTML 中的行

Conditional highlighting of rows in tableHTML

在 tableHTML 中:有没有一种方法可以根据一个条件列突出显示完整的行?像这样,但在 mpg-、cyl- 和 disp-列中也有红细胞:

tableHTML(mtcars[1:10,1:3]) %>%
add_css_conditional_column(conditional = "contains", 
                           value = "Hornet",
                           css = list('background-color', "red"), 
                           columns = "rownames")

我们打算在程序包中包含该功能,但尚未实现。不过可以通过一些技巧来完成:

首先,我们为条件创建一个逻辑向量,然后我们创建一个 tableHTML 对象。然后,对于 tableHTML 对象中的每一列,我们可以使用函数 add_css_rows_in_column:

在循环中应用样式
library(tableHTML)

conditional <- grepl("Hornet", rownames(mtcars[1:10, ])) 

my_tableHTML<- mtcars[1:10,1:3] %>% 
 tableHTML()
for (i in 0:3) {
 my_tableHTML <- my_tableHTML %>% 
  add_css_rows_in_column(css = list(c("background-color"), 
                                    ifelse(conditional, "red", "")),
                         column = i)
} 

my_tableHTML

结果如下所示:

在最近发布的tableHTML版本(2.1.0版)中,有一个选项可以选择logical作为带有add_css_conditional_column的条件类型,也可以作为行的代理如果应用于所有列,则条件突出显示

基本上,您为条件定义逻辑向量(就像 clemens 的回答一样),然后选择将其应用于所有列,如下所示:

my_df <- mtcars[1:10,1:3]
conditional <- grepl("Hornet", rownames(my_df)) 

tableHTML(my_df) %>%
  add_css_conditional_column(conditional = "logical", 
                             columns = 0:ncol(my_df),
                             css = list('background-color', "red"), 
                             logical_conditions = list(conditional))

我自己找到了答案。 使用add_css_row函数,可以在rows参数中加入条件:

my_df <- mtcars[1:10,1:3]
tableHTML(my_df) %>%
add_css_row(css = list('background-color', 'red'), 
            rows = grep("Hornet", rownames(my_df)) + 1)