r - DataTable 突出显示空单元格
问题描述
我试图突出显示 DataTable(包 DT)中的空单元格,以便我可以向表的用户演示哪些信息仍需要完成。
我尝试使用该DT::formatStyle()
函数来实现这一点,然后使用其中一个辅助函数styleInterval()
or styleEqual()
,但它们似乎都没有检查空值的工具。
任何想法如何实现?
下面的可重现示例仅以绿色突出显示大于 1 的日期,但并未以红色突出显示空的日期...
start_date <- c("2020-07-01","2020-01-02","2019-10-01",NA,"2019-10-01",NA,"2019-10-01","2019-10-01")
end_date <- c(NA, "2020-12-31","2020-12-31","2020-12-31","2020-12-31","2020-12-31","2020-12-31","2020-12-31")
df <- cbind(start_date, end_date)
DT::datatable(df,
selection = "single",
options = list(
scrollX = TRUE,
scrollY = TRUE,
lengthChange = FALSE,
searching = FALSE,
initComplete = JS(
"function(settings, json) {",
"$(this.api().table().container()).css({'font-size': '80%'});",
"$(this.api().table().header()).css({'font-size': '100%'});",
"}")
)
) %>%
DT::formatStyle(columns = c("start_date", "end_date"),
background = styleInterval(c(NULL, 1), c("red","green")))
解决方案
library(DT)
start_date <- c("2020-07-01","2020-01-02","2019-10-01",NA,"2019-10-01",NA,"2019-10-01","2019-10-01")
end_date <- c(NA, "2020-12-31","2020-12-31","2020-12-31","2020-12-31","2020-12-31","2020-12-31","2020-12-31")
df <- cbind(start_date, end_date)
datatable(df,
selection = "single",
options = list(
scrollX = TRUE,
scrollY = TRUE,
lengthChange = FALSE,
searching = FALSE,
initComplete = JS(
"function(settings, json) {",
"$(this.api().table().container()).css({'font-size': '80%'});",
"$(this.api().table().header()).css({'font-size': '100%'});",
"}")
)
) %>% formatStyle(
columns = c("start_date", "end_date"),
background = JS('value === null ? "red" : new Date(value) > new Date("2020-01-01") ? "green" : ""'))
推荐阅读
- javascript - Firebase 实时数据库获取父节点值 .val()
- macos - 使用键盘快捷键为电子邮件运行 AppleScript
- python - 使用模板通过电子邮件请求文档签名不会填充选项卡值
- android - 如何在 Kotlin 中检查等价物
- sql-server - 除非使用 exec('...'),否则开始 try/catch 不会在不存在的表上捕获 select?
- wordpress - 跟踪插件冲突 WordPress(CiviCRM / 事件管理器)
- python - 有没有办法搜索特定的在使用 Python 和 BeautifulSoup 的 HTML 注释中
- node.js - 猫鼬连接的选项
- html - 如何使 img 的行为与背景图像相同?
- python - 如何绘制圆形与海龟图形的组合?