r Shiny renderdatatable 转置数据框问题

r Shiny renderdatatable transpose data frame issue

当我在 Shiny 中使用 renderdatatable 函数显示转置数据集时,函数 returns 结果缺少 table 列名称。

很想知道其他人做了什么来缓解这个问题,非常感谢任何帮助。

这可能是因为转置数据集没有任何行名(转置操作后将成为列名)。 如果您确保为数据输入设置列名,则数据table 呈现对我来说很好。

library(shiny)

# Some data
n      <- 10
dat           <- data.frame("a"=sample(LETTERS,n),"b"=runif(n),"c"=runif(n))
rownames(dat) <-paste("r_", sample(LETTERS,n),sep="")
colnames(dat) <-paste("c_", sample(LETTERS,3),sep="")

ui <- shinyUI(fluidPage(
  fluidRow(
    column(8,dataTableOutput("tbl")),
    column(2,actionButton("renderMatrix","Render matrix")),
    column(2,actionButton("renderMatrixT","Render t(matrix)"))
  )
))

server <- shinyServer(function(input, output) {
  observeEvent(input$renderMatrix,{
    output$tbl <- renderDataTable({dat})
  })
  observeEvent(input$renderMatrixT,{
    output$tbl <- renderDataTable({t(dat)})
  })
})
shinyApp(ui = ui, server = server)

这些示例设置了行名和列名,因此数据 table 将始终有一个 "Column Name" 列。