问题描述
在 tablehtml 中:有没有办法根据一个条件列突出显示完整的行?像这样的东西,但在 mpg-、cyl- 和 disp-列中也有红色单元格:
import requests
# url = "http://*******/(number from 1 to 1,000,000)"
available_numbers = []
for i in range(1,1000000):
url = f"http://*************/{i}"
data = requests.get(url)
if data.status_code == 200:
available_numbers.append(i)
print(available_numbers)
解决方法
我自己找到了答案。
使用 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)
,
我们打算在包中包含该功能,但尚未实现。不过,它可以通过一些 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 版本(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))