我想对用美元格式化的 DataTable 列(因此是一个字符)进行排序。我用过scales::dollar()
用于格式化。这会将字段转换为字符,从而导致排序问题(例如,"$8" > "$10"
).
如何像数字字段一样对字段进行排序?或者,我可以将该字段保留为数字并仅以美元格式打印吗?
app.R(需要闪亮 0.10.2)
server <- function(input, output) {
output$foo_table <- renderDataTable({
x <- seq(8000, 12000, by = 1000)
x <- scales::dollar(x)
d <- data.frame(x, stringsAsFactors = FALSE)
d
})
}
ui <- shinyUI(fluidPage(
mainPanel(dataTableOutput("foo_table"))
)
)
shinyApp(ui = ui, server = server)
有点晚了,但是DT套餐 https://rstudio.github.io/DT/现在有格式函数,包括 formatCurrency:
# format the columns A and C as currency, and D as percentages
datatable(m) %>% formatCurrency(c('A', 'C')) %>% formatPercentage('D', 2)
从功能页面:
在底层,这些格式化函数只是 rowCallback 选项的包装器,用于生成适当的 JavaScript 代码。
类似地,有一个 formatDate() 函数可用于格式化日期/时间列。它有一个方法参数,该参数从可能的转换方法列表中获取值:toDateString、toISOString、toLocaleDateString、toLocaleString、toLocaleTimeString、toString、toTimeString、toUTCString。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)