如何使用kableExtra在函数内指定分组的列名?

时间:2019-01-14 15:53:02

标签: r knitr kableextra

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 :(得分:1)

标题是一个以colspan为值的命名字符向量。您必须创建矢量并使用names()分配名称。

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")