利用 R Shiny 数据表中的背景颜色为单元格着色

Utilizing background colors in R Shiny datatable to color cells

您好,我正在使用我的 R Shiny 仪表板使用 NBA 数据来展示前一天比赛中得分最高的前 15 名球员。我有一个简单的 table 设置显示得分和投篮效率,但它非常平淡,我认为在某些单元格上使用背景颜色来做一些事情会很有用PTS,或相对于本赛季平均水平而言效率较高的球员。

下面我粘贴了 table 的截图以及我希望它具有的最后一列,但我还发布了我已经在数据框中计算的其他变量的截图我想着色的。我不想在实际 table 中包含那些额外的变量,但我想使用它们为单元格设置背景色(如果这有意义的话)。数据框称为 top_15_yesterday,我也发布了 R Shiny 输出代码。

output$top_15 <- DT::renderDataTable(datatable(top_15_yesterday, rownames = FALSE,
                                                 options = list(searching = FALSE, pageLength = 15, 
                                                                lengthChange = FALSE, info = FALSE, paging = FALSE)) %>%
                                         formatCurrency(6, currency = "$", interval = 3, mark = ",", digits = 0) %>%
                                         formatPercentage(4, digits = 1))

例如,如果玩家的 ppg_difference 大于 20,则他们的 PTS 单元格应着色为绿色,任何高于 .20 的 ts_difference 应着色为绿色,如果玩家获得his season high (PTS = season_high) 那么他们的 PTS 单元格应该是紫色的。另一方面,如果玩家的 ts_difference 比他们的平均水平低 0.10,则将他们的 TS% 单元格标记为红色。

这只是我想使用的那种着色方案的一般概念,但我不知道如何将其实现到数据中table。我看到的示例没有我想要着色的变量已经在数据框中的设置。如果有人能够跟进并对如何实现这些背景颜色有任何建议,我将不胜感激!

在您的选项中,将您要引用的列设为不可见。 JavaScript

中的第一列为零
options = list(searching = FALSE, 
pageLength = 15, 
lengthChange = FALSE, 
info = FALSE, 
paging = FALSE
columnDefs = list(list(targets = c(0, 7, 8, 9, 10, 11),  
               visible = FALSE)))

关闭 datatable() 并通过管道传输到

formatStyle(columns = 'theColumn', 
                    valueColumns = 'theReferenceColumn',
                    backgroundColor = styleEqual(levels = c(a vector with the levels), 
                                                 values = c(a vector with the background colors))

or styleInterval(cuts, values)