【问题标题】:Multi-Row Headers with Flextable带有 Flextable 的多行标题
【发布时间】:2020-06-22 15:05:25
【问题描述】:

我在尝试使用 flextable 格式化我的表格时遇到了很多问题。例如,下表是我开始的内容:

> df
   name   x1   x2   x3   x1   x2   x3
1  <NA> 2010 2010 2010 2011 2011 2011
2 name1    1    1    1    1    1    1
3 name2    2    2    2    2    2    2
4 name3    3    3    3    3    3    3
5 name4    4    4    4    4    4    4
6 name5    5    5    5    5    5    5

我想要做的是有 2 个标题 - 一个为 3 组列中的每一组合并年份,另一个列名称每 3 列都相同。例如,我希望它看起来像这样:

> df
   name x1   x2 x3 x1   x2 x3
1  <NA>    2010       2011   
2 name1  1    1  1  1    1  1
3 name2  2    2  2  2    2  2
4 name3  3    3  3  3    3  3
5 name4  4    4  4  4    4  4
6 name5  5    5  5  5    5  5

此外,年份标题将位于 x1、x2、x3 标题上方。我遇到的问题是如何在 R 中指定两个标题,然后如何在 flextable 中合并多组 3 列。我可以使用以下方法合并第一组列 (2010):

flextable(df) %>%
  merge_at(i = 1,j = c(2:4), part = "body")

但我不确定如何为多个分组执行上述操作。此外,由于该行没有指定为“标题”,因此我必须指定的部分是“正文”。

任何正确方向的帮助或指示将不胜感激!

【问题讨论】:

  • 我现在推荐 gt 库来进行这种类型的格式化,这对你来说是一个选择吗? gt.rstudio.com
  • 谢谢,是的,这对我来说肯定是一个选择。我会调查的
  • 这里的文档davidgohel.github.io/flextable/articles/… 解释了如何管理标题和合并单元格。
  • 谢谢!不知何故,我只看到了主要的 flextable 页面,并错过了顶部的标题以及详细信息。感谢您为这个软件包所做的所有工作,太棒了!
  • 不客气。我认为您需要将数据与标题信息分开,这会容易得多

标签: r flextable


【解决方案1】:

flextable 库为此提供了 add_header_row 函数。使用您的 df,以下内容应该可以工作。

    flextable(df) %>% 
      add_header_row(top = TRUE, values = c("", "2010", "2011"), colwidths = c(1,3,3))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多