flextable: как отображать заголовки группы как значение, а не как имя переменной: значение - PullRequest
0 голосов
/ 26 марта 2019
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?

Это то, что я хотел бы видеть (не беспокойтесь о хлайнах - важен текст):

This is what I would like to see

Не это:

flextable default grouped rows

1 Ответ

1 голос
/ 27 марта 2019

Вам нужно использовать 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()

enter image description here

...