【问题标题】:Change column names in DT package right before output to Shiny app在输出到 Shiny 应用程序之前更改 DT 包中的列名
【发布时间】:2016-09-08 20:28:37
【问题描述】:

我想在将数据输出到 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 函数输出数据表之前的最后一步。

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

【问题讨论】:

  • 只需使用datatablecolnames 参数,它将创建您想要的显示名称。请参阅文档。
  • 但是 test.df 已经是一个数据表了。该文档将 colnames 作为 datatables 函数中的参数。 (rstudio.github.io/DT) 在我已经将 df 转换为数据表之后,我看不到如何在最后包含列名。

标签: r shiny dt


【解决方案1】:

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

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

【讨论】:

  • 工作得很好,没有意识到 colnames 只会改变列的显示,而不是底层的名称。
  • 自 2016 年 8 月 8 日发布的 DT 版本 0.2 起,似乎 format* 函数的行为已更改。提供的示例不再适用于 v0.2。现在 format* 函数需要重命名列的新名称。换句话说,必须使用显示名称来选择 format* 函数中的列。
猜你喜欢
  • 2020-10-07
  • 2019-01-10
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-10
  • 2018-10-26
  • 1970-01-01
相关资源
最近更新 更多