Как вы можете указать сгруппированные имена столбцов внутри функции с помощью kableExtra? - PullRequest
0 голосов
/ 14 января 2019
library(tidyverse)
library(knitr)
library(kableExtra)


kable(head(mpg)) %>% kable_styling %>% add_header_above(c(" " = 6,
                                               "foobar" = 5))

Хорошо работает, если вы хотите указать заголовок сгруппированного столбца вручную:

enter code here

Однако я хочу поместить эту функцию в функцию, которую я пробовал:

a_function <- function(my_column_head_name){
kable(head(mpg)) %>% kable_styling %>% add_header_above(c(" " = 6,
                                               my_column_head_name = 5))
}

a_function("foobar")

Но это возвращает именованный аргумент в качестве имени заголовка столбца:

enter image description here

Полагаю, это как-то связано с ленивой оценкой?

1 Ответ

0 голосов
/ 14 января 2019

Заголовок представляет собой именованный символьный вектор с colspan в качестве значений. Вы должны создать вектор и назначить имена с именами ().

a_function <- function(my_column_head_name){
  myHeader <- c(" " = 6, my_column_head_name = 5)
  names(myHeader) <- c(" ", my_column_head_name)
  kable(head(mpg)) %>% kable_styling %>% add_header_above(myHeader)
}

a_function("foobar")
...