【问题标题】:flextable: How to show group headings as the value only rather as the variable name: valueflextable:如何仅将组标题显示为值而不是变量名:值
【发布时间】:2019-03-26 15:24:54
【问题描述】:
library(tidyverse)
library(flextable)

MWE

tib <- tibble(var_group = c("a", "a", "b", "c", "c", "c"),
              var = 1:6)

tib <- as_grouped_data(x = tib, groups = c("var_group"), columns = NULL)

as_flextable(tib) 

如何删除分组标题中的 var_group: 部分,以便留下 a、b 和 c?

这是我希望看到的(不用担心 hlines - 重要的是文本):

不是这个:

【问题讨论】:

  • 当我尝试此操作时,我收到以下错误消息:“get_rows_id(x[[part]], i) 中的错误:无效行选择:长度(i)[0]!= nrow(数据集) [9]"
  • 函数是as_grouped_data。我正在使用来自 cran 的最新版本的 flextable:v0.5.1
  • 你是对的。我之前认为它是一个 tidyverse 函数。对不起
  • 你可以试试flextable(tib) %&gt;% set_header_labels(var_group = "")。无法删除标题 hlines
  • 我收到此错误:“[(*tmp*`, i, j, value = value) 中的错误:下标越界”。我不关心 hlines - 编辑问题以明确这一点。

标签: r row grouping flextable


【解决方案1】:

这也有效:

library(tidyverse)
library(flextable)

tib <- tibble(var_group = c("a", "a", "b", "c", "c", "c"),
              var = 1:6)

tib <- as_grouped_data(x = tib, groups = c("var_group"), columns = NULL)

as_flextable(tib, hide_grouplabel = TRUE) 

【讨论】:

    【解决方案2】:

    您需要使用flextable::compose 才能覆盖默认值。查看将要使用的 as_grouped_data 生成的数据很重要。这些组已添加了一个虚拟行,我们可以使用该列。

    library(tidyverse)
    library(flextable)
    #> 
    #> Attachement du package : 'flextable'
    #> The following object is masked from 'package:purrr':
    #> 
    #>     compose
    
    tib <- tibble(var_group = c("a", "a", "b", "c", "c", "c"),
                  var = 1:6)
    
    tib <- as_grouped_data(x = tib, groups = c("var_group"), columns = NULL)
    tib
    #>   var_group var
    #> 1         a  NA
    #> 4      <NA>   1
    #> 5      <NA>   2
    #> 2         b  NA
    #> 6      <NA>   3
    #> 3         c  NA
    #> 7      <NA>   4
    #> 8      <NA>   5
    #> 9      <NA>   6
    tib %>% 
      as_flextable( ) %>% 
      flextable::compose(
        i = ~ !is.na(var_group), # when var_group not NA
        j = "var", # on column "var"
        # create a paragraph containing a chunk containing value of `var_group`
        value = as_paragraph(as_chunk(var_group))) %>% 
      hline(i = ~ !is.na(var_group), border = officer::fp_border() ) %>% 
      autofit()
    

    【讨论】:

      猜你喜欢
      • 2018-07-20
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      相关资源
      最近更新 更多