使用R Shiny和DT:能否轻松地以交互方式突出显示/取消突出显示单元格?
我一直在查看DT输入$ dt_cell_clicked以捕获被单击的行和列。然后,我打算将该值存储在另一列中,以有条件地突出显示该值(TRUE / FALSE)。
我的问题是:另一个选项/功能可以做得更好更快吗?
public static void Main(string[] args)
{
using (var reader = new StreamReader("path\\to\\file.csv"))
using (CsvReader csv = new CsvReader(reader))
{
csv.Read();
csv.ReadHeader();
if (!csv.Context.HeaderRecord.Contains("myHeaderColumnName"))
{
csv.Configuration.HasHeaderRecord = false;
reader.BaseStream.Position = 0;
}
var records = csv.GetRecords<MyModel>().ToList();
}
}
预期(尚未实现):单击单元格突出显示/取消突出显示。
此代码来自: How to change the cell color of a cell of an R Shiny data table dependent on it's value? DataTables DT: reset value of clicked cell
答案 0 :(得分:0)
您可以仅使用单个单元格selection
进行突出显示:
library(shiny)
library(DT)
options(DT.options = list(pageLength = 5))
DF = as.data.frame(
cbind(
matrix(round(rnorm(50), 3), 10),
sample(0:1, 10, TRUE),
rep(FALSE, 10)
)
)
ui <- shinyUI(
fluidRow(
tags$style(HTML('table.dataTable tr.selected td, table.dataTable td.selected {background-color: lightgreen !important;}')),
DT::dataTableOutput("myDT")
)
)
server <- shinyServer(function(input, output, session) {
output$myDT <- DT::renderDataTable({
DT::datatable(DF, selection = list(mode="single", target="cell"), editable = TRUE) %>% formatStyle(
'V1', 'V6',
backgroundColor = styleEqual(c(0, 1), c('gray', 'yellow'))
)
})
})
shinyApp(ui, server)