![](/img/trans.png)
[英]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.