2016-03-29 29 views
0

Aşağıda belirtilen kod ayrıntıları.R'de parlak tablolara koşullu biçimlendirme nasıl eklenir?

**server.R** 
shinyServer(function(input, output) { 

    getTable <- reactive({ 
    // Some manipulations done every 2 mins and table is updated 
    // Assume tbl_op has only one row with 3 columns 
    // The table values represent time in hh:mm:ss 
    tbl_op 
    }) 

    output$tableUI <- renderTable({ 
    getTable() 
    },include.rownames=FALSE) 
}) 

**ui.R** 
shinyUI(
    fluidPage( 
    fluidRow(  
     column(width = 5, offset = 1,    
      tableOutput("tableUI") 
    ) 
    ) 
) 
) 

Çıkışı gereken biçimde görüntüleyebiliyorum, ancak buna format ekleyemiyorum.

Zaman farkı (Sistem Saati ile tablo hücresinde görüntülenen değer arasındaki mutlak mutlak değer) 2 dakikadan fazla olduğunda, tablo hücresi değerlerinin kırmızıyla vurgulanmasını istiyorum. Tablo her iki dakikada bir güncellenir. Fark, 2 dakikadan fazla olduğunda hücre değeri vurgulanmalıdır.

Datatable ile mümkün ise, lütfen kodu sağlayın.

+0

Bu koşullu biçimlendirme uygulamak mümkündür her 2 saniyede bir güncelleme ve (test simplisity için) şimdiki zaman ile hücrelerde değeri karşılaştırmak Parlak olarak görüntülenen veri tabloları ancak oldukça ilgili bir alıştırmadır, [bu tartışmaya] bir göz attınız mı (http://stackoverflow.com/q/22850562/1655567)? Başka bir öneride bulunmanın özgürlüğünü kabul edersem, neden kodunuzu bazı kukla verilerle tek bir “app.R” dosyası olarak yeniden göndermiyorsunuz? Halkın çalışabilmesi daha kolay olurdu, buna bir göz atmak istedim, ancak tüm veri ve dönüşümlerin üretilmesi gerektiğinden, çok fazla iş gibi göründüğü için ilgiyi yitirmek istedim. – Konrad

cevap

0

iki görevi vardır:

Biçim DT hücreleri

her 2 dakika formatStyle(

Update kullanarak yapılabilir

o şey deneyin reactiveTimer

kullanılarak yapılabilir

benzeri:

UI

library(DT) 
library(shiny) 

    shinyUI(

     fluidRow(  

     DT::dataTableOutput("tableUI") 

    ) 
    ) 
) 

Sunucu

library(shiny) 
library(DT) 


tbl_op=data.frame(z=as.POSIXct(Sys.time())+1:10) 


shinyServer(function(input, output,session) { 

    ttt=reactiveValues(tbl_op=tbl_op) 

    autoInvalidate <- reactiveTimer(2000, session) 

    observe({ 
    autoInvalidate() 
print(Sys.time()) 
ttt$tbl_op$check=ifelse(Sys.time()> ttt$tbl_op$z,1,0) 
}) 

    output$tableUI <- DT::renderDataTable({ 
     DT::datatable(ttt$tbl_op,rownames=F, 
         options=list(columnDefs = list(list(visible=FALSE,targets=1))))%>%formatStyle("check",target = 'row',backgroundColor = styleInterval(0.5,c("red","none"))) 
    }) 
    }) 

PS

Ben

İlgili konular