【问题标题】:DT::datatable in R, flexdashboardDT::R 中的数据表,flexdashboard
【发布时间】:2018-05-28 15:56:34
【问题描述】:
 Household Size    0       1          2        3        4        5+
                 Bedrooms Bedrooms Bedrooms Bedrooms Bedrooms Bedrooms
       1          253   4486        2033     930        105      8
       2          10    666         3703     947        85       7
       3           4    68          1972     1621       52       5
       4           1    12           680     1835       164      11
      5+           0    6            147     1230       721      122

我有上面的数据框,其中“卧室”是列上的标签。

我正在尝试将其更改为数据表,然后我可以在 rmarkdown 中使用它来添加到 flexdashboard。当我使用以下代码时:

DT::datatable(df, rownames = FALSE, extensions = 'FixedColumns', escape=TRUE,options= list(bPaginate = FALSE))

我得到了输出:

Household Size         0    1      2       3     4        5+
1                    253    4486  2033    930   105       8
2                     10    666   3703    947   85        7
3                      4    68    1972    1621  52        5
4                      1    12     680    1835  164       11
5+                     0    6      147    1230  721       122

我有几个问题:

  1. 没有显示“卧室”的标签,因此无法知道列中这些数字的实际含义。我想包含标签或在列名顶部添加一个行,上面写着“卧室数”,涵盖所有行?
  2. Household Size 和 5+ 列的宽度比其他列宽,我希望这些列要么相同,要么 Household Size 比其余列稍大

我认为值得注意的是,第 5+ 行和第 5+ 列都是一个新的行/列,可以计算任何高于 5 的值。

另外,这只是额外的,但我想将左下角的单元格涂成红色,将右上角的单元格涂成绿色,这可能吗?

【问题讨论】:

  • 因为我们无法运行您的代码。你能让它重现吗?
  • @MLavoie 我不明白你为什么需要代码?对不起,我不习惯发问题,如果我错了,请纠正我。但是从描述中我认为很清楚我想要做什么?看到重现这个的代码不会改变它吗?我需要一段时间才能为此创建代码,因为我目前以 csv 格式读取数据。提前致谢。
  • @MLavoie 我现在明白了,感谢您的 cmets。我很难理解为什么有时需要可重现的代码。如果有人问我如何在图表上获得标题,我不需要他们的确切数据来帮助查询?那有意义吗?抱歉,我希望以后能更好地提出有关堆栈溢出的问题。谢谢!

标签: r datatable formatting dt flexdashboard


【解决方案1】:

我想出了如何在列标题中保留“卧室”。可以使用下面的代码在 DT::datatable 中设置列​​名;

DT::datatable(HS_BED_ALL, rownames = FALSE, colnames=c('Household Size','0 Bedrooms','1 Bedroom','2 Bedrooms','3 Bedrooms','4 Bedrooms','5+ Bedrooms'), extensions = 'FixedColumns', escape=TRUE, options= list(bPaginate = FALSE, dom = 't',buttons = c('excel')))%>%formatStyle(1:7,fontSize = '14px')

提供所需的输出。

【讨论】:

  • @and-bri 哎呀,对不起!我现在就这样做:)