rhandsontable更改特定行的背景

Chr*_*isW 5 r handsontable shiny

我在R闪亮中使用rhandsontable,我想在第一列中用"Sum"改变行的颜色.由于行数不固定,因此根据行号选择"Sum"行不起作用.我已经尝试了附加的代码,遗憾的是它不起作用.非常感谢你的帮助!

library(shiny)
library(rhandsontable)
runApp(list(server=
  shinyServer(function(input, output, session) {

     CF_amt <- as.data.frame(matrix(0.0, nrow=5, ncol=10));
     CF_type <- data.frame(source = c("Row1","Row2","Row3","Row4","Sum"),
                            stringsAsFactors = FALSE);
     CF_names <- c("source","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10");
     CF_tbl <- cbind(CF_type,CF_amt);

     values <- reactiveValues(data = CF_tbl)

     output$table <- renderRHandsontable({ 
       rhandsontable(values$data,rowHeaders = NULL,colHeaders=CF_names) %>% 
         hot_cols(fixedColumnsLeft = 1, renderer = "
             function (instance, td, row, col, prop, value, cellProperties) {
               Handsontable.renderers.TextRenderer.apply(this, arguments);
               if (col == 0) {
                td.style.background = '#F0F0F0';
               }
               else if(this.instance.getData()[row][0] == 'Sum'){
                td.style.background = '#F00000';
               }
            }"
       ) 
    })
  })
,ui=
  shinyUI(navbarPage("Test",
    tabPanel("HOT",
       fluidPage(fluidRow(
         column(12,rHandsontableOutput("table"))
      ))
   )
  ))
))
Run Code Online (Sandbox Code Playgroud)

MrF*_*ick 4

您似乎遇到了 JavaScript 错误。尝试改变

this.instance.getData()[row][0]
Run Code Online (Sandbox Code Playgroud)

instance.getData()[row][0]
Run Code Online (Sandbox Code Playgroud)

因为instance作为参数传递给渲染函数。

在此输入图像描述