gpt4 book ai didi

html - 如何使用列名和行名或索引为 R 中数据表(DT 包)中单元格的背景着色?

转载 作者:行者123 更新时间:2023-12-01 21:57:42 24 4
gpt4 key购买 nike

这是一个例子。我创建了一个数据框并使用它来创建用于可视化的数据表。如您所见,我的列名和第一列的行表示 A 和 B 的条件。我想要做的是更改此数据表中特定单元格的背景颜色。选择要更改的列很容易,如此链接 (https://rstudio.github.io/DT/010-style.html) 中所述。但是,如何指定要选择的行对我来说并不明显。

为了给你更多的上下文,我正在开发一个 Shiny 应用程序,我想设计一个数据表允许我根据 A 中的条件为单元格着色和 B。例如,如果 A 小于 1 并且 B 在 1 和 2 之间,我希望能够从 A is less 中选择第二个单元格超过 1 列。为此,我需要知道如何指定行号或行名。目前,我只知道如何根据行中的内容指定行,如本例所示。

library(tibble)
library(DT)

dat <- tribble(
~`A/B`, ~`A is less than 1`, ~`A is between 1 and 2`, ~`A is larger than 2`,
"B is less than 1", 10, 30, 30,
"B is between 1 and 2", 20, 10, 30,
"B is larger than 2", 20, 20, 10
)


datatable(dat, filter = "none", rownames = FALSE, selection = "none",
options = list(dom = 't', ordering = FALSE)) %>%
formatStyle(
'A is less than 1',
backgroundColor = styleEqual(20, "orange")
)

enter image description here

最佳答案

我不确定是否理解问题,但如果您想更改由行索引和列索引给出的单元格的背景颜色(这就是我的理解),您可以执行以下操作:

changeCellColor <- function(row, col){
c(
"function(row, data, num, index){",
sprintf(" if(index == %d){", row-1),
sprintf(" $('td:eq(' + %d + ')', row)", col),
" .css({'background-color': 'orange'});",
" }",
"}"
)
}
datatable(dat,
options = list(
dom = "t",
rowCallback = JS(changeCellColor(1, 2))
)
)

关于html - 如何使用列名和行名或索引为 R 中数据表(DT 包)中单元格的背景着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55657754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com