我正在寻找R中的库,该库可以生成图片中附带的结果,即多个列名和行名。 目前,我出于相同的目的使用 rpivotTable和DT :: Datatable库,并使用它们构建 ShinyApp 。
但是我遇到的问题是使用ShinyApp将输出导出到excel ,这可能是错误重复标题或跳过标题。 例如,当我按照下面的代码下载Iris的输出时,我没有得到Sepal和Petal的顶部标题。
我需要这个
library(shiny)
library(DT)
iris<-iris[,c(5,1:4)]
ui =basicPage(
tags$head(
tags$style(type = "text/css",
HTML("th { text-align: center; }")
)
),
selectInput(inputId = "Species",
label = "Species:",
choices = c("All",
unique(as.character(iris$Species)))),
h2('Iris Table'),
DT::dataTableOutput('mytable')
)
server = function(input, output) {
output$mytable = DT::renderDataTable({
# a custom table container
sketch = htmltools::withTags(table(
class = 'display',
thead(
tr(
th(rowspan = 2, 'Species'),
th(colspan = 2, 'Sepal'),
th(colspan = 2, 'Petal')
),
tr(
lapply(rep(c('Length', 'Width'), 2), th)
)
)
))
DT::datatable(filter = "top", rownames = FALSE, container = sketch,
extensions = 'Buttons',
escape = FALSE,
options = list(dom = 'Bfrtip',
buttons =
list('colvis', list(
extend = 'collection',
buttons = list(list(extend='csv',
filename =
'hitStats'),
list(extend='excel',
filename =
'hitStats'),
list(extend='pdf',
filename=
'hitStats'),
list(extend='copy',
filename =
'hitStats'),
list(extend='print',
filename =
'hitStats')),
text = 'Download'
)),
scrollX = TRUE,
pageLength = nrow(iris),
order=list(list(2,'desc'))),
{
data<-iris
if(input$Species != 'All'){
data<-data[data$Species == input$Species,]
}
# data<-data[,c("Species",input$columns),drop=FALSE]
#
data
})
})
}
shinyApp(ui = ui, server = server)