答案 0 :(得分:0)
这可能是因为转置数据集没有任何rownames(在转置操作后它将成为列名)。 如果确保为数据输入设置列名,那么数据表渲染对我来说就好了。
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)
示例设置行名和列名,因此数据表将始终具有“列名”列。