【发布时间】:2019-12-17 09:08:43
【问题描述】:
我正在尝试使用 R 中的 DT 包复制 Excel 的条件格式。
在我的示例中,足球俱乐部在下拉列表中被选中,他们的比赛出现在表格中。我想根据俱乐部的结果突出显示每一行。挑战在于俱乐部在主场和客场比赛中的比赛不同,因此代码需要满足这一点。行格式应如下所示:
- 绿色表示获胜 - 如果所选俱乐部的得分比他们的对手多
- 灰色表示平局 - 如果所选俱乐部的得分与他们的对手相同
- 红色表示失败 - 如果所选俱乐部的得分低于他们的对手
这是我到目前为止的代码(在底部格式化)。显然它是错误的,所以不要太在意它。它所做的只是根据Home.Goals 字段中特定数量的目标突出显示。
output$match_cr <- DT::renderDataTable({
match_cr <- match
# Find home and away matches involving club selected from dropdown.
match_cr <- subset(
match_cr,
match_cr$Home.Club == input$club | match_cr$Away.Club == input$club
)
if (input$season != "All") {
match_cr <- subset(
match_cr,
Season == input$season
)
}
match_cr
DT::datatable(match_cr,filter = 'top', options =
list(lengthMenu = list(c(-1, 10, 50, 100),
list('All', 10, 50, 100)),
pageLength = -1), selection = 'none'
) %>%
formatStyle(
'Home.Goals', target = 'row',
backgroundColor = styleEqual(c(2, 1, 0),c('green', 'grey', 'red'))
)
})
【问题讨论】:
标签: r shiny formatting conditional-formatting dt