2015-10-18 64 views
0

當我在Shiny中使用renderdatatable函數來顯示轉置數據集時,該函數返回表列名稱丟失的結果。r閃亮的renderdatatable轉置數據幀問題

enter image description here

好奇,找出別人怎麼做來緩解這個問題,任何的幫助深表感謝。

+1

你能發表一個小的可重複的例子嗎?我發佈了一個答案,但現在我意識到我可能誤解了某些示例代碼會有所幫助。由行名稱工作的 –

回答

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) 

這些示例設置了行名和列名,所以數據表總是有一個「列名」列。

+0

顯示爲第二列而不是第一列。他們是在右邊,而不是顯示在左邊...... :(沮喪呃 –

+0

你可以發表一個這樣的例子?因爲我不知道我可以重新創建這種行爲 –

+0

我在做反應函數做錯了。我修好了,它的工作正常,你讓我的一天。 –