在R Datatable中,它们是有条件地向数字添加加号的一种方法吗?

在R Datatable中,它们是有条件地向数字添加加号的一种方法吗?,r,datatables,formatting,dt,R,Datatables,Formatting,Dt,我的表中有一列是百分比变化,所以我希望它显示为正或负。问题是我仍然希望它是可排序的,所以它需要是数字而不是字符串 我假设可以在datatable格式中为0以上的任何内容添加一个加号,但无法根据文档找出加号。我需要第四列前面有一个加号/减号。这是我的出发点: datatable(temp,rownames=F,options = list(dom='t'))%>% formatStyle("Change", backgroundColo

我的表中有一列是百分比变化,所以我希望它显示为正或负。问题是我仍然希望它是可排序的,所以它需要是数字而不是字符串

我假设可以在datatable格式中为0以上的任何内容添加一个加号,但无法根据文档找出加号。我需要第四列前面有一个加号/减号。这是我的出发点:

  datatable(temp,rownames=F,options = list(dom='t'))%>%
  formatStyle("Change",
              backgroundColor  = styleInterval(c(-.10,-.075, -.05, -.025,-.0175, 0,.0175, .025, .05, .075, .10), 
                                               c('#f79539','#fab83e','#f7e38f','#fffcc9','#fffee6', '#ffffff','#ffffff','#fffee6','#fffcc9','#f7e38f','#fab83e', '#f79539' )))  %>%
  formatPercentage(c(2:4), 2) 

使用
渲染

library(DT)

render <- c(
  "function(data, type, row) {",
  "  if(type === 'display') {",
  "    var sign = data > 0 ? '+' : '-';",
  "    return sign + data;",
  "  } else {",
  "    return data;",
  "  }",
  "}"
)

df <- data.frame(
  Val = c("A", "B"), 
  x = c(-1, 1)
)
datatable(df, 
          options = list(
            columnDefs = list(
              list(targets = 2, render = JS(render))
            )
          )
)
库(DT)

渲染看起来,当我在其上使用formatPercentage时,它会覆盖渲染的使用。它们是通过渲染实现格式百分比的一种方法吗?我不熟悉该代码,因此不知道如何进行更改。@bpheazye
return sign+data+'%'谢谢Stephane!为了让以后发现这一点的人完全模拟formatPercentage函数,请使用tofixed
render