Shiny DT列的着色
有没有办法给下面的“电子邮件”栏涂上颜色(如果“电子邮件”大于“电话”,则为红色,否则为黄色)。这里的挑战是,我们是否也可以隐藏“调用”列Shiny DT列的着色,shiny,Shiny,有没有办法给下面的“电子邮件”栏涂上颜色(如果“电子邮件”大于“电话”,则为红色,否则为黄色)。这里的挑战是,我们是否也可以隐藏“调用”列 library(shiny) library(tidyverse) library(DT) x <- tibble( Unit = c("Sales", "Marketing", "HR"), Calls = c(100, 150, 120), Emails = c(200,
library(shiny)
library(tidyverse)
library(DT)
x <- tibble(
Unit = c("Sales", "Marketing", "HR"),
Calls = c(100, 150, 120),
Emails = c(200, 220, 230),
Calls_goal = c(1, 0, 0),
Emails_goal = c(0, 1, 1)
)
ui <- fluidPage(
mainPanel(
DT::dataTableOutput("table")
)
)
server <- function(input, output) {
output$table <- DT::renderDataTable({
# Can't use both visible = FALSE and rownames = FALSE
datatable(x,
rownames = TRUE)
})
}
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(tidyverse)
图书馆(DT)
x这应该做到:
我已经创建了一个名为diff
的额外专栏,在这里我们减去了电话和电子邮件之间的差异,我们将使用这个专栏来着色。然后,我们可以使用columnDefs
功能根据您对用户的请求将其与Calls列一起隐藏。对于实际的颜色,我们可以使用formatStyle
,这已经有很好的文档记录了
库(闪亮)
图书馆(tidyverse)
图书馆(DT)
数据
library(shiny)
library(tidyverse)
library(DT)
data <- tibble(
Unit = c("Sales", "Marketing", "HR"),
Calls = c(100, 150, 120),
Emails = c(200, 220, 230),
Calls_goal = c(1, 0, 0),
Emails_goal = c(0, 1, 1)
)
data$diff <- data$Emails - data$Calls
ui <- fluidPage(
mainPanel(
DT::dataTableOutput("table")
)
)
server <- function(input, output) {
output$table <- DT::renderDataTable({
datatable(data,
options = list(
columnDefs=list(
list(visible=FALSE, targets=c(1,5))
)
),rownames = F)%>%
formatStyle("Emails",valueColumns = 'diff',BackgroundColor = styleInterval(c(0), c("Yellow",'Red')))
})
}
shinyApp(ui = ui, server = server)