R :: flexdashboard中的DT :: datatable

时间:2017-12-14 14:12:13

标签: r datatable formatting dt flexdashboard

 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

我有上面的数据框,其中'Bedrooms'是列上的标签。

我正在尝试将其更改为数据表,然后我可以在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. “家庭大小”和“5+”列的宽度比其他列宽,我希望它们相同或家庭大小略大于其余列
  3. 我认为值得注意的是,第5行和第5列都是新行/列,可以计算任何高于5的值。

    此外,这只是一个额外的但我想将左下角的单元格变为红色而右上角的单元格为绿色,这可能吗?

1 个答案:

答案 0 :(得分: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')

提供所需的输出。