gpt4 book ai didi

javascript - R DT rowCallback 条件格式化每个单元格

转载 作者:行者123 更新时间:2023-12-03 02:17:08 29 4
gpt4 key购买 nike

在我的 DT 中,我尝试为每个单元格创建条件格式,其中格式基于每行的不同规则。目标是在第 1 列和第 2 列之间创建简单的视觉比较

例如

如果 [1,1] < [1,2] 突出显示 [1,1] 绿色和 [1,2] 红色

如果 [2,1] < [2,2] 突出显示 [2,1] 红色和 [2,2] 绿色

3 月 19 日更新:为了方便起见,我在 R 中构建了一个“获胜者”列,并尝试将表中的数据与该列进行比较。

library(DT)

example.data <- data.frame(col.1 = rep(1, 2),
col.2 = rep(2, 2),
winner = c(1,2))

datatable(example.data,
options = list(
rowCallback = JS(
'function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {

if (parseFloat(aData[3] = 1)){
$("td:eq(1)", nRow).css("background-color", "green");
}
if (parseFloat(aData[3] = 2)){
$("td:eq(1)", nRow).css("background-color", "red");
}

if (parseFloat(aData[3] = 1)){
$("td:eq(2)", nRow).css("background-color", "red");
}
if (parseFloat(aData[3] = 2)) {
$("td:eq(2)", nRow).css("background-color", "green");
}
}'
)
))

上面的代码将第 1 列变为红色,将第 2 列变为绿色。任何帮助,将不胜感激。

最佳答案

前面代码中的错误是由于误用 = 运算符(本应是 ==),并使用 parseFloat 将参数作为浮点传递。对于任何尝试执行类似任务的人来说,以下示例应该可行。

datatable(example.data,
options = list(
rowCallback = JS(
'function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {

if (aData[3] == "1"){
$("td:eq(1)", nRow).css("background-color", "green");
}
if (aData[3] == "2"){
$("td:eq(1)", nRow).css("background-color", "red");
}

if (aData[3] == "1"){
$("td:eq(2)", nRow).css("background-color", "red");
}
if (aData[3] == "2") {
$("td:eq(2)", nRow).css("background-color", "green");
}
}'
)
))

关于javascript - R DT rowCallback 条件格式化每个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49326010/

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