如何使用DT包中的renderDataTable()格式化数据表的列?

时间:2016-08-10 17:54:27

标签: r shiny dt

我可以像这样格式化数据表对象的列

library(DT)
datatable(data.frame(Amount=c(1.00, 2.20, 4.15))) %>% formatCurrency(columns='Amount')

enter image description here

但是如何使用renderDataTable()

执行此操作
library(shiny)
library(DT)

ui <- shinyUI(fluidPage(
  DT::dataTableOutput('dtoMyTable')
))

server <- shinyServer(function(input, output){
  output$dtoMyTable <- DT::renderDataTable({
    data.frame(Amount=c(1.00, 2.20, 4.15))
  })
})

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:5)

阅读DT::renderDataTable上的帮助页面:

  

renderDataTable(expr,...

     

EXPR
  用于创建表窗口小部件的表达式(通常通过datatable()),或者要传递给datatable()以创建表窗口小部件的数据对象

因此,您只需先创建datatable对象,然后根据需要进行格式化,然后调用renderDataTable

server <- shinyServer(function(input, output){
  dt <- datatable(data.frame(Amount=c(1.00, 2.20, 4.15))) %>% 
    formatCurrency(columns='Amount')
  output$dtoMyTable <- DT::renderDataTable({dt})
})