2014-12-03 4 views
0

현재 테이블을 출력하는 Shiny 앱을 설계하고 있습니다. 특정 열의 셀을 강조 표시하고 싶습니다 (예 : 셀을 파란색으로). shinyBS 패키지의 HighlightRows 함수를 사용해 보았지만 작동하지 않습니다. 여기 Shiny 테이블의 한 열만 강조 표시

내 서버 스크립트는 테이블을 만드는 부분이다 : 어떤 도움을 크게 감상 할 수
output$text1 <- renderTable({ 
    tab1 <- as.data.frame(matrix(c(rrround(input$patha,3),PowerF()$tta,input$nxn,rrround(currentInput()$patha,3),rrround(rxyval()$rxy,3),rrround(rxyval()$rxy_p,3),rround(PowerF()$tra,3), 
            rrround(input$pathp,3),PowerF()$ttp,input$nxn,rrround(currentInput()$pathp,3),rrround(rxyval()$rxyp,3),rrround(rxyval()$rxyp_p,3),rround(PowerF()$trp,3)) 
           ,ncol=7, byrow=TRUE)) 

    rownames(tab1) <- c('Actor', 'Partner') 
    colnames(tab1) <- c('Size', 'Power', 'N','Beta','r','partial r','ncp') 
    tab1.align = "r" 

    highlightRows(session, id='tab1', class = "info", column="Power", regex = ".") 
    print(tab1, type="html") 

})

.

감사합니다.

답변

0

tags$script을 사용하여 데이터 테이블을 수정할 수 있습니다. 아래는 샘플 데이터 테이블의 3 열 (1), (5) 및 (9)를 강조 표시 한 예입니다. 비슷한 문제가있는 작은 문제가 있음을 알 수 있습니다. How to change Datatable row background colour based on the condition in a column, Rshiny

rm(list = ls()) 
library(shiny) 
options(digits.secs=3) 

test_table <- cbind(rep(as.character(Sys.time()),10),rep('a',10),rep('b',10),rep('b',10),rep('c',10),rep('c',10),rep('d',10),rep('d',10),rep('e',10),rep('e',10)) 
colnames(test_table) <- c("Time","Test","T3","T4","T5","T6","T7","T8","T9","T10") 

ui =navbarPage(inverse=TRUE,title = "Coloring datatables", 
       tabPanel("Logs",icon = icon("bell"), 
         mainPanel(htmlOutput("logs"))), 
       tabPanel("Extra 2",icon = icon("bell")), 
       tabPanel("Extra 3",icon = icon("bell")), 
       tags$style(type="text/css", "#logs td:nth-child(1) {text-align:center;background-color:red;color: white;text-align:center}"), 
       tags$style(type="text/css", "#logs td:nth-child(5) {text-align:center;background-color:blue;color: white;text-align:center}"), 
       tags$style(type="text/css", "#logs td:nth-child(9) {text-align:center;background-color:green;color: white;text-align:center}") 
) 
server <- (function(input, output, session) { 

    my_test_table <- reactive({ 
    other_data <- rbind(c(as.character(Sys.time()),(sample(c("Pass","Aggr","Bad"))[1]),round(c(rnorm(1),rnorm(1),rnorm(1),rnorm(1),rnorm(1),rnorm(1),rnorm(1),rnorm(1)),2)), 
         (c(as.character(Sys.time()),(sample(c("Pass","Aggr","Bad"))[1]),round(c(rnorm(1),rnorm(1),rnorm(1),rnorm(1),rnorm(1),rnorm(1),rnorm(1),rnorm(1)),2)))) 
    test_table <<- rbind(apply(other_data, 2, rev),test_table) 
    as.data.frame(test_table) 
    }) 
    output$logs <- renderTable({my_test_table()},include.rownames=FALSE) 

}) 

runApp(list(ui = ui, server = server)) 
+0

감사합니다. 나는 이것에 대해 조금 더 노력하려고 노력할 것이다. – RobertA

관련 문제