【发布时间】:2016-12-05 10:59:30
【问题描述】:
这是一个示例,说明如何选择一列(第 3 列),以某种方式突出显示大于 100 的值以及以某种方式突出显示大于 200 的值。
library("shiny")
library("shinydashboard")
library("datasets")
library("DT")
header <- dashboardHeader()
sidebar <- dashboardSidebar()
body <- dashboardBody(
DT::dataTableOutput("mtcarsTable")
)
shinyApp(
ui = dashboardPage(header, sidebar, body),
server = function(input, output) {
output$mtcarsTable <- renderDataTable({
DT::datatable(datasets::mtcars,
options = list(rowCallback = JS('
function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
// Bold and green cells for conditions
if (parseFloat(aData[3]) >= 200)
$("td:eq(3)", nRow).css("font-weight", "bold");
if (parseFloat(aData[3]) >= 100)
$("td:eq(3)", nRow).css("background-color", "#9BF59B");
}')
)
)
})
}
)
我只是在寻找一种只选择行而不是列的方法。例如,选择第 3、9、11 和 13 行并将这些行涂成黄色。非常感谢有关如何修改上述代码以实现此目的的任何帮助。提前致谢。
【问题讨论】:
-
看起来
aData是一个数据框。有什么理由不能参考aData[c(3,9,11,13),]? -
@Warner,你是对的
aData是一个数据框,我按照你的建议做了,我没有看到任何输出,也没有看到任何错误,我怀疑我必须更改下一个也行,$("td:eq(3)", nRow).....,但不确定如何? -
@Science11,看看我的例子stackoverflow.com/questions/38565033/…
标签: r datatable shiny shinydashboard