2017-12-12 18 views
1

'date'情報のデータテーブルに背景色を適用しようとしています: 緑色=最新、黄色=旧式、赤色=本当に古くなりました。 基本的には、ここにあるヒートマップの例の「スタイル全テーブル」が好きです: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)) 

、すなわち私が定義した間隔内に値であることを確認してください。

虹彩データセットを自分のコードで渡すと、そのデータが日付データであることが問題になっていると思われます。私は何かが明らかに欠けているように感じる...

ありがとうございます!

答えて

0

これは現在サポートされていないと私は考えており、GitHub issueを作成しました。

解決策の1つは、日付の整数バージョンを保持する列を作成し、それに基づいてスタイルを設定することです。整数列を非表示にする

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) 
関連する問題