[英]conditional formatting of cells using if else? or hiding columns in DT package in R
[英]Conditional Formatting Using DT Package in R
我正在尝试使用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$
添加到变量名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.