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

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

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

【问题讨论】:

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

标签: r shiny-server shiny


【解决方案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)

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

【讨论】:

  • 由行名工作的显示为第二列而不是第一列。他们在右边而不是出现在左边......:(令人沮丧的呃
  • 你能举个例子吗?因为我不确定我是否可以重新创建这种行为
  • 我在反应函数中做错了什么。我修好了它,它工作正常。你让我开心。
  • 太好了,很高兴我能帮上忙!
猜你喜欢
  • 2014-09-27
  • 1970-01-01
  • 2018-10-08
  • 2018-07-30
  • 2019-11-13
  • 2015-09-13
  • 1970-01-01
  • 2017-02-22
  • 1970-01-01
相关资源
最近更新 更多