1

在 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")
4

3 回答 3

3

我自己找到了答案。使用该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)

在此处输入图像描述

于 2021-04-11T19:57:15.693 回答
2

在最近发布的 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))

在此处输入图像描述

于 2021-04-11T18:46:23.127 回答
2

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

首先,我们为条件创建一个逻辑向量,然后我们创建一个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_result

于 2021-04-11T17:20:55.790 回答