尝试使用 expss 包制作闪亮的表格,但是在下载数据时,HTML 标签也出现在不应该出现的列标题中。
任何人都可以帮忙吗?
#install.packages("expss")
library("expss")
library(shiny)
shinyApp(
ui = fluidPage(fluidRow(column(12, dataTableOutput('txt')))),
server = function(input, output) {
table <- reactive({
data(mtcars)
var_text = "vs_sum = vs==0, am_sum = am==1, gear_sum = gear == 4|gear==5, carb_sum = total(carb)"
var_expr = parse(text = sprintf("data.frame(%s)", var_text)) # parse text string to expression
var_list = calc(mtcars, 1*eval(var_expr)) %>% # caclulate data.frame with zero/one columns
prepend_names() %>% # add names as labels
mis_val(0) %>% # we don't need columns with FALSE condition
set_val_lab(c("|" = 1)) # suppress values in table - we don't want to see TRUE/1
mtcars %>%
tab_prepend_values %>%
tab_cols(total(), var_list) %>%
tab_cells(cyl) %>%
tab_stat_cpct() %>%
tab_pivot()
})
output$txt <- renderDataTable({
as.datatable_widget(table(), rownames = F,filter = 'top', extensions = "Buttons",
options = list(
dom = 'Bfrtip',
scrollX = TRUE,
columnDefs = list(list(className = 'dt-center', targets = "_all")),
buttons = list(
'colvis',
list(
extend = 'collection',
buttons = c('csv', 'excel', 'pdf'),
text = 'Download'
)
)
))
}, server = F)
} )
下载输出时 th { text-align:center; } th{border: 1pxsolid #DDD 与列标题一起出现,我在这里缺少什么。你能推荐一下吗
导出选项:{ 列: 'th:not(:last-child)', 格式: { 主体:函数(数据,行,列,节点){ 如果(列===7){ 返回数据.replace(/]+>/g, ''); } 返回数据; }, 标题:函数(数据、列、行){ 如果(列== 0){ 返回“总计”; } 如果(列== 1){ 返回“Vs Sum”; } 如果(列== 2){ 返回“齿轮总和”; } 如果(列== 3){ 返回'carb_sum'; }
}
}
}
你可以写这样的东西。