DT包的使用
官网
DT包中最常用的函数是 datatable()。下面内容是datatable()的相关使用。
datatable(data, options = list(), class = "display",
callback = JS("return table;"), rownames, colnames, container,
caption = NULL, filter = c("none", "bottom", "top"), escape = TRUE,
style = "default", width = NULL, height = NULL, elementId = NULL,
fillContainer = getOption("DT.fillContainer", NULL),
autoHideNavigation = getOption("DT.autoHideNavigation", NULL),
selection = c("multiple", "single", "none"), extensions = list(),
plugins = NULL, editable = FALSE)
DataTables Options
DataTables本身有一系列的初始选项,这些初始选项的设置我们可以在options = list()里去设定。
datatable(iris,
rownames = FALSE, # 不呈现行号
options = list(
columnDefs = list(list(className = 'dt-center', targets = 4)), #第5列居中,若显示行号,则行号算一列。
pageLength = 10, # 显示十条数据
order = list(list(2, 'asc'), list(3, 'desc')),# 按第三列升序,按第四列降序
dom = 't', # t 代表只呈现表格,ft 代表呈现 筛选项等
initComplete = JS(
"function(settings, json) {",
"$(this.api().table().header()).css({'background-color': '#000', 'color': '#fff'});",
"}") #设置表格标题颜色:黑色。
))
另外,在同一个session中,当options适用于所有的DataTables时,可以直接使用全局options。如下所示。
options(DT.options = list(
searchHighlight = TRUE,
language = list(
info = '显示第_START_ 至 _END_ 项结果,共 _TOTAL_ 项',
search = '搜索:',
paginate = list(previous = '上页', `next` = '下页'),
lengthMenu = '显示 _MENU_ 项结果'),
columnDefs = list(
list(className = 'dt-center',
targets = "_all"))))
DataTables functions
数值格式的函数使用
datatable(m) %>%
formatCurrency(c('A')) %>% # 添加货币符号
formatPercentage('D', 2) %>% # 保留两位小数的百分比形式
formatCurrency(2, '\U20AC', digits = 0) %>% # 用欧元货币符号,且保留0位小数
formatRound('E', 3) # 保留三位小数
表格格式的函数使用
datatable(d) %>%
formatStyle('Sepal.Length', fontWeight = styleInterval(5, c('normal', 'bold'))) %>%
formatStyle(
'Sepal.Width',
color = styleInterval(c(3.4, 3.8), c('white', 'blue', 'red')), # 条件使用区域和颜色
backgroundColor = styleInterval(3.4, c('gray', 'yellow'))) %>% # 条件使用区域和背景颜色
formatStyle(
'Petal.Length',
background = styleColorBar(iris$Petal.Length, 'pink',angle = 90), #格式的颜色和方向
backgroundSize = '90% 80%', # 格式位置
backgroundRepeat = 'no-repeat', # 图像将仅显示一次
backgroundPosition = 'center'
)
DataTables Extensions
这里举了通过扩展工具实现的 数据下载,固定窗口,分组呈现,按x轴y轴滚动。
datatable(
m,
extensions = c('Buttons','FixedColumns','RowGroup'), # 依次为按钮(用于下载,复制等) ,固定列,分组,滚动
options = list(
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf', 'print'), # 按钮选择
scrollX = TRUE, # x轴滚动
fixedColumns = list(leftColumns = 2, rightColumns = 1), # 固定指定列
rowGroup = list(dataSrc = 2) # 分组))