r - 带有 Shiny 日期数据表的 styleInterval() 的彩色背景

标签 r shiny formatting dt

我正在尝试将背景颜色应用于“日期”信息的数据表: 绿色=最新,黄色=过时,红色=确实过时。 基本上就像在这里找到的“设计完整表格”热图示例:https://rstudio.github.io/DT/010-style.html

我的代码大约是这样的;

library(wakefield)
library(shiny)
library(DT)

backlogTbl <- r_data_frame(n = 5,
 date_stamp,
 date_stamp,
 date_stamp,
 date_stamp) %>%
r_na(prob=.25)

backlogDT <- datatable(backlogTbl) %>%
              formatStyle(names(backlogTbl), 
                  backgroundColor = styleInterval(Sys.Date() - days(c(7,2)), 
                  c("red", "yellow", "green")))

当我运行这个时,每个非空背景都是绿色的,而不是绿色/黄色/或红色,具体取决于值,但是当我将单个单元格与我的断点进行比较时,即

backlogTbl[1,1] < Sys.Date() - days(c(7,2))

我可以看到这些值在我定义的间隔内。

如果我通过代码传递虹膜数据集,它的格式很好,这让我怀疑问题在于它是日期时间数据?我觉得我错过了一些明显的东西......

提前谢谢您!

最佳答案

我认为当前不支持此功能,我创建了一个 GitHub issue为了它。

一种解决方法是创建一个列来保存日期的整数版本,并根据该列设置您的样式。然后隐藏整数列

library(shiny)
library(DT)
library(tidyverse)
library(lubridate)

ui <- fluidPage(
  titlePanel("DateDemo"),
  sidebarLayout(
    sidebarPanel(
    ),
    mainPanel(
      DTOutput('tbl'),
      width = 10,
      height = "800px")
  )
)

server <- function(input, output) {
  output$tbl <-
    renderDT({
      splitDate <- as.Date("2018-02-02")
      data_frame(ExampleDate = as.Date(c("2018-01-01","2019-01-01"))) %>%
        mutate(ExampleDateInt = as.integer(ExampleDate)) %>% #make column with integer dates
        datatable(options=list(columnDefs = list(list(visible=FALSE, targets=c(2))))) %>% #hide the integer column
        formatStyle(columns = "ExampleDate",
                    valueColumns = "ExampleDateInt",
                    backgroundColor = styleInterval(as.integer(splitDate),c("#FB717E","#89EC6A"))) #format based on the integer column
    }) 
}
shinyApp(ui = ui, server = server)

关于r - 带有 Shiny 日期数据表的 styleInterval() 的彩色背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47764806/

相关文章:

r - 在 Shiny DT 数据表中使用空格(不是管道)批量搜索正则表达式

python - format() 函数总是返回 "0.00"

javascript - 如何在 "codesandbox.io"上配置 ESLint/Prettier 格式规则

R使用沿边界保留单元格的多边形裁剪栅格

R - 合并多个大型数据帧(整理)

r - ggplot2 和 GLM : plot a predicted probability

javascript - 通过js设置R Shiny 的默认textInput值(作为js函数的结果)

R 字符/字符串 : '...' vs "..."

r - 隐藏容器时操作按钮不起作用。 Shiny R

c++ - Visual C++ 不接受 hOut