在将数据输出到Shiny应用程序之前,使用DT包更改列名称

17

在将数据表输出到Shiny应用程序之前的最后一步中,我想更改列名。显示名称相当长,因此我不想在操作数据表时更改它们。在我的实际数据集中,数据表的格式更改比以下更多。

这是一个虚拟数据集:

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函数输出datatable之前完成此步骤。

如果有一种创建列别名而不是更改实际列名的方法,那也可以使用。


1
只需使用datatablecolnames参数,它将创建您想要的显示名称。请参阅文档。 - Xiongbing Jin
但是test.df已经是一个数据表了。文档中datatables函数有colnames作为参数。(https://rstudio.github.io/DT/)我不知道如何在将df转换为datatable之后,在最后包含列名。 - matsuo_basho
1个回答

19

只需使用datatablecolnames参数即可。这仅更改显示名称,因此您仍然可以在格式化代码中使用原始列名。

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

工作得很完美,没想到 colnames 只改变了列的显示,而不是底层的名称。 - matsuo_basho
3
似乎format函数的行为已经在2016年8月8日发布的DT版本0.2中发生了更改。提供的示例不再适用于v0.2。现在,format函数期望使用重命名后的列的新名称。换句话说,在format*函数中必须使用显示名称来选择列。 - ruiyiz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接