r Shiny renderdatatable 转置数据帧问题

Posted

技术标签:

【中文标题】r Shiny renderdatatable 转置数据帧问题【英文标题】:r Shiny renderdatatable transpose data frame issue 【发布时间】:2016-01-16 15:10:11 【问题描述】:

当我在 Shiny 中使用 renderdatatable 函数显示转置数据集时,该函数返回的结果缺少表列名。

很想知道其他人为缓解此问题所做的工作,非常感谢任何帮助。

【问题讨论】:

您能发布一个可复制的小例子吗?我发布了一个答案,但现在我意识到我可能误解了一些东西,所以一些示例代码会有所帮助。 【参考方案1】:

这可能是因为转置后的数据集没有任何行名(在转置操作后将成为列名)。 如果您确保为数据输入设置列名,那么数据表对我来说就可以了。

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)

示例设置了行名和列名,因此数据表将始终具有“列名”列。

【讨论】:

由行名工作的显示为第二列而不是第一列。他们在右边而不是出现在左边......:(令人沮丧的呃 你能举个例子吗?因为我不确定我是否可以重新创建这种行为 我在反应函数中做错了什么。我修好了它,它工作正常。你让我开心。 太好了,很高兴我能帮上忙!

以上是关于r Shiny renderdatatable 转置数据帧问题的主要内容,如果未能解决你的问题,请参考以下文章

将 TableTools 用于 R Shiny 中的 DataTables 用于 renderDataTable

如何在R Shiny中使用renderUI触发renderDataTable进行输入?

在 R Shiny 中使用 DT::renderDataTable 时如何抑制行名?

R Shiny DT::renderDataTable ...如何在下载的表格中自定义标题

如何将renderDataTable的过滤器放在R闪亮的顶部

有没有办法使用 Shiny 更新的 DT::renderDataTable 和 DT::dataTableOutput 按列搜索?