2016-05-12 54 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