我正在尝试使用 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'))
)
})
我会再添加一列match_cr
,表明所选俱乐部是否像这样获胜:
match_cr$win.selected = ifelse(((match_cr$Home.Club == input$club) & (match_cr$Home.Goals > match_cr$Away.Goals)) ||
((match_cr$Away.Club == input$club) & (match_cr$Away.Goals > match_cr$Home.Goals)),
2,
ifelse(match_cr$Home.Goals == match_cr$Away.Goals, 1, 0))
您可以在subset()
. 然后你可以格式化数据表
formatStyle('win.selected', target = 'row',
backgroundColor = styleEqual(c(2, 1, 0),c('green', 'grey', 'red'))
)
编辑:添加match_cr$
到变量名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句