2017-09-22 1 views
1

나는 양수 값과 음수 값을 가진 행렬 M을 가진다. DT 패키지를 사용하여 반짝이는 응용 프로그램에서 테이블로 표시하려고합니다. 매트릭스를 다른 색상으로 표시하고 싶습니다. 빨간색과 음수의 양수 (예 :).반짝이는 앱에서 조건을 사용하여 색상을 지정하는 매트릭스를 어떻게 표시합니까?

지금까지는 색상을 일대일 방식으로 만 추가 할 수 있습니다. 하지만 난이 방법으로 색상을 추가하고 싶습니다 : matrix_values> 0 "color1", 만약 matrix_values ​​< 0 "color2".

M <- matrix(c(-3:2), 3) # The matrix is more complex and it's created in a 
reactive environment. Here is only an example 

M_out <- reactive({ 

DT::datatable(M()) %>% 
    formatStyle(
    columns = c(1:7), 
    backgroundColor = styleEqual(c(0, 1), c("green", "red") 
    )) 
}) 
output$X_table_2 <- DT::renderDataTable(M_1X2()) 

감사합니다.

답변

0

당신은 뷰어 창에서 포맷 된 매트릭스를 표시합니다 RStudio에서이 라인을 Runnig DT::styleInterval 대신

library(DT)  # for datatable, formatStyle, styleInterval 
library(dplyr) # for %>% 

myDT <- matrix(c(-3:2), 3) %>% datatable %>% 
    formatStyle(
    columns = 1:2, 
    backgroundColor = styleInterval( 
     cuts = c(-.01, 0), 
     values = c("red", "white", "green") 
    ) 
) 

myDT 

DT::styleEqual의를 사용할 수 있습니다. RStudio를 사용하지 않는 경우 반짝이는 앱에 테이블을 표시 할 수도 있습니다.

library(shiny) 
shinyApp(
    ui = fluidPage(DT::dataTableOutput('table')) 
    server = function(input, output, session){ 
    output$table = DT::renderDataTable({myDT}) 
    } 
) 
+0

감사합니다. 괜찮아. 다른 질문을하겠습니다. 사실, 나는 M과 같은 차원의 행렬 X를 표시하려고합니다. M 대신에 행렬 X를 표시하고 싶습니다. 의미는 다음과 같습니다. * X의 셀에 * color1 M> 0 (X [M 0> (X [M == 0]) *의 셀에서 M <0 (X [M <0]) 및 color3 인 셀의 color2. 그것은 간단한 방법으로 가능합니까? 감사 !!! –

+0

예, 가능하지만 매우 간단하지는 않습니다. M의 열을 숨겨진 열로 테이블에 추가하고이를 'formatStyle'에서'valueColumns '로 사용할 수 있습니다. –

+0

방금 ​​매트릭스 X를 다른 행렬에 따라 fromat하는 방법에 대한 답을 업데이트했습니다. –

관련 문제