2016-05-12 51 views
1

我想在最後一步更改Dataable的列名,然後在Shiny應用中輸出它。顯示名稱很長,我不想在操縱數據表時更改它們。在我的實際數據集中,數據表的格式更改比下面更多。在輸出到Shiny應用之前更改DT包中的列名稱

這是一個虛擬的數據集:

library(DT) 
test.df <- data.frame(a = runif(10), b = 21:20, c = 31:30, d = 31:40) 
test.dt <- datatable(test.df) %>% formatPercentage('a', 0) %>% formatCurrency('c', '$') 

現在,我將如何改變列名到c( 'Col1中', 'col2的', 'COL3', 'COL4')?再次,我希望這是在我用renderDataTable函數輸出數據表之前的最後一步。

如果有辦法創建列別名而不是更改實際的列名稱,那也可以。

+0

只需使用'datatable'的'colnames'參數,它將創建一個您想要的顯示名稱。請參閱文檔。 –

+0

但test.df已經是一個數據表。該文檔具有colnames作爲datatables函數中的一個參數。 (https://rstudio.github.io/DT/)在我已經將df轉換爲數據表後,我不知道如何在最後包含列名。 –

回答

4

只需使用datatablecolnames參數即可。這隻會改變顯示名稱,所以您仍然可以在格式化代碼中使用原始列名稱。

test.dt <- datatable(test.df, colnames=c("aa", "cc")) %>% formatPercentage('a', 0) %>% formatCurrency('c', '$') 
+0

精美的作品,沒有意識到只改變列的顯示,而不是基礎名稱。 –

+0

從2016年8月8日發佈的DT版本0.2起,格式*函數的行爲似乎發生了變化。所提供的示例不再適用於v0.2。現在格式*函數期望重命名列的新名稱。換句話說,必須使用顯示名稱來選擇格式*功能中的列。 – ruiyiz