我需要DT :: datatable的条件格式化方面的帮助。我想通过斜体打印来突出显示以下示例中的几个名称。需要突出显示的名称位于向量name.highlight <- c("ABC","JKL")
require(DT)
mydf <- data.frame(name=c("ABC","DEF","GHI","JKL","MNO","PQR"), value=1:6)
DT::datatable(mydf)
根据我看到的here和here,似乎我需要使用渲染。我不知道如何编写JS代码或如何传递一个包含所有需要突出显示的字符串的向量/容器。
datatable(mydf, options = list(columnDefs = list(list(
targets = 0, render = JS("function(data, type, full, meta) {", ..., "}")
))))
感谢。
答案 0 :(得分:2)
datatable(mydf, options = list(columnDefs = list(list(
targets = 0, render = JS(
"function(data, type, full, meta) {",
"italic_words=['ABC','JKL']",
"return type === 'display' && italic_words.indexOf(data) != -1 ?",
"'<i>'+data+'</i>' : data;",
"}")
))))
我在javascript函数中定义了italic_words变量。该变量包含一个包含斜体所需单词的数组。然后我使用了indexOf()javascript函数。如果名称不在变量italic_words中,则此函数将返回-1,并且名称不会显示为斜体。