如何在R中突出显示颜色中的特定单元格值
DF1、DF2和DF3是我拥有的三个数据帧(在选项中)。在从第二个数据集中选择DF3时,我希望在该特定单元格的背景中以绿色突出显示第7行“Salary”列中的值“600.00”。在R中最有效的方法是什么?因为我是新来的,有人能帮我吗 下面是我的代码:如何在R中突出显示颜色中的特定单元格值,r,shiny,R,Shiny,DF1、DF2和DF3是我拥有的三个数据帧(在选项中)。在从第二个数据集中选择DF3时,我希望在该特定单元格的背景中以绿色突出显示第7行“Salary”列中的值“600.00”。在R中最有效的方法是什么?因为我是新来的,有人能帮我吗 下面是我的代码: library(shiny) DF1 <- data.frame( emp_id = c(1:5), emp_name = c("Rick","Dan","Michelle"
library(shiny)
DF1 <- data.frame(
emp_id = c(1:5),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
salary = c(623.3,515.2,611.0,735.0,844.25))
DF1
DF2 <- data.frame(
emp_id = c(1:6),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary", "Alex"),
salary = c(623.3,515.2,611.0,729.0,843.25, 243.5))
DF3 <- data.frame(
emp_id = c(1:7),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary", "Alex", "Christan"),
salary = c(623.3,515.2,611.0,729.0,843.25, 243.5, 600.0))
shinyApp(
ui = tagList(
navbarPage(
fluidRow(column(6, selectInput("dataset1", "Choose first dataset:",
choices = c("SelectDataSet ", "DF1", "DF2", "DF3"))),
column(6, selectInput("dataset2", "Choose second dataset:",
choices = c("SelectDataSet ", "DF1", "DF2", "DF3")))
),
# Button
downloadButton("downloadData5", "Download")
),
mainPanel(
fluidRow(column(6, tableOutput("table1")),
column(6, tableOutput("table2"))
)
)
),
server = function(input, output,session) {
datasetInput1 <- reactive({
switch(input$dataset1,
"DF1" = DF1,
"DF2" = DF2,
"DF3" = DF3)
})
datasetInput2 <- reactive({
switch(input$dataset2,
"DF1" = DF1,
"DF2" = DF2,
"DF3" = DF3)
})
output$table1 <- renderTable({
datasetInput1()
})
output$table2 <- renderTable({
datasetInput2()
})
}
)
shinyApp(ui, server)
库(闪亮)
DF1您可以使用它,它允许使用cell\u spec
单独定义每个单元格:
library(shiny)
library(kableExtra)
DF1 <- data.frame(
emp_id = c(1:5),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
salary = c(623.3,515.2,611.0,735.0,844.25))
DF1
DF2 <- data.frame(
emp_id = c(1:6),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary", "Alex"),
salary = c(623.3,515.2,611.0,729.0,843.25, 243.5))
DF3 <- data.frame(
emp_id = c(1:7),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary", "Alex", "Christan"),
salary = c(623.3,515.2,611.0,729.0,843.25, 243.5, 600.0))
# Define specific cell spec
DF3$salary <- cell_spec(DF3$salary, background = c(rep("white",6), "green"))
shinyApp(
ui = tagList(
navbarPage(
fluidRow(column(6, selectInput("dataset1", "Choose first dataset:",
choices = c("SelectDataSet ", "DF1", "DF2", "DF3"))),
column(6, selectInput("dataset2", "Choose second dataset:",
choices = c("SelectDataSet ", "DF1", "DF2", "DF3")))
),
# Button
downloadButton("downloadData5", "Download")
),
mainPanel(
fluidRow(column(6, tableOutput("table1")),
column(6, tableOutput("table2"))
)
)
),
server = function(input, output,session) {
datasetInput1 <- reactive({
switch(input$dataset1,
"DF1" = DF1,
"DF2" = DF2,
"DF3" = DF3)
})
datasetInput2 <- reactive({
switch(input$dataset2,
"DF1" = DF1,
"DF2" = DF2,
"DF3" = DF3)
})
output$table1 <- function() {
req(datasetInput1() )
datasetInput1() %>%
knitr::kable("html",escape = F) %>% kable_styling()
}
output$table2 <- function() {
req(datasetInput2() )
datasetInput2() %>%
knitr::kable("html",escape = F) %>% kable_styling()
}
}
)
shinyApp(ui, server)
库(闪亮)
图书馆(kableExtra)
DF1如果您不介意使用DT
,您可以在第二次显示中为该单元格的背景着色
library(DT)
shinyApp(
ui = tagList(
navbarPage(
fluidRow(column(6, selectInput("dataset1", "Choose first dataset:",
choices = c("SelectDataSet ", "DF1", "DF2", "DF3"))),
column(6, selectInput("dataset2", "Choose second dataset:",
choices = c("SelectDataSet ", "DF1", "DF2", "DF3")))
),
# Button
downloadButton("downloadData5", "Download")
),
mainPanel(
fluidRow(column(6, dataTableOutput("table1")),
column(6, dataTableOutput("table2"))
)
)
),
server = function(input, output,session) {
DF1 <- data.frame(
emp_id = c(1:5),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
salary = c(623.3,515.2,611.0,735.0,844.25))
DF2 <- data.frame(
emp_id = c(1:6),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary", "Alex"),
salary = c(623.3,515.2,611.0,729.0,843.25, 243.5))
DF3 <- data.frame(
emp_id = c(1:7),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary", "Alex", "Christan"),
salary = c(623.3,515.2,611.0,729.0,843.25, 243.5, 600.0))
datasetInput1 <- reactive({
switch(input$dataset1,
"DF1" = DF1,
"DF2" = DF2,
"DF3" = DF3)
})
datasetInput2 <- reactive({
switch(input$dataset2,
"DF1" = DF1,
"DF2" = DF2,
"DF3" = DF3)
})
output$table1 <- renderDataTable({
datasetInput1()
})
output$table2 <- renderDataTable({
if(input$dataset2 != "SelectDataSet ") {
# Get the dataset
d = datasetInput2()
# Add a column specifying the background color: light green if
# salary = 600; nothing otherwise
d$background.color = ifelse(d$salary == 600, "lightgreen", NA)
# Output the DataTable; hide the new 4th column we just created
# but use it to specify the background color of the "salary"
# column
d %>%
datatable(options = list(columnDefs = list(list(targets = 4,
visible = F)))) %>%
formatStyle("salary",
backgroundColor = styleEqual(d$salary,
d$background.color))
}
})
}
)
库(DT)
shinyApp(
ui=标记列表(
导航栏页(
fluidRow(第(6)列,选择输入(“数据集1”,“选择第一个数据集:”,
choices=c(“SelectDataSet”、“DF1”、“DF2”、“DF3”),
列(6),选择输入(“数据集2”,“选择第二个数据集:”,
choices=c(“SelectDataSet”、“DF1”、“DF2”、“DF3”))
),
#钮扣
下载按钮(“下载数据5”,“下载”)
),
主面板(
fluidRow(第6列,dataTableOutput(“表1”)),
列(6,dataTableOutput(“表2”))
)
)
),
服务器=功能(输入、输出、会话){
DF1谢谢;我只想从第二个数据集选择中获得DF3上的颜色高亮显示。您需要为第一个选择制作一份不带样式的DF3
,为第二个选择制作一个样式化版本。为了更好地理解样式化的作用,请尝试knitr::kable(“html”,escape=T)
而不是knitr::kable(“html”),escape=F)
查看后面生成的HTML。