当列由于用户选择而改变位置时,取消选中DT :: formatRound中的Shiny中的列

时间:2018-10-14 03:56:43

标签: r datatable shiny dt

我正在制作一个闪亮的应用程序(https://joshmyers.shinyapps.io/WAINorms/)。第三个选项卡“规范数据”显示基于几个用户输入的数据表。我对该表的输出代码是:

output$table = renderDataTable({
datatable(norms.df(), options = list(
lengthMenu = list(c(50, 100, 200, -1), c('50', '100', '200', 'All')), 
pageLength = 100), rownames = FALSE, class = 'white-space: nowrap stripe hover') 
%>% formatRound(columns = -c(1:2), digits =  2)
})

formatRound函数将所有列四舍五入,除了前两位至小数点后两位。问题在于,这也舍入了我不想要的“百分比”列。

问题在于它会根据“种族特定”的选择切换位置-如果“否”百分位数是第三列,但是如果“是”则变成第四列,而另一列“种族”是已插入。

如何将除“度量”,“年龄”,“百分位数”和“民族性”之外的所有列四舍五入到小数点后两位?

1 个答案:

答案 0 :(得分:0)

这不是我想要的,但是我可以忍受。您可以将formatRound函数链接在一起(https://rstudio.github.io/DT/functions.html),因此我可以将'Percentile'列四舍五入到小数点后一位。但是,我决定改用formatSignif

datatable(norms.df()) %>% 
formatSignif("Percentile", 3) %>% 
formatRound( -c(1:2), 2)