首页 > 解决方案 > 如何使用 kableExtra 在函数中指定分组的列名?

问题描述

library(tidyverse)
library(knitr)
library(kableExtra)


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

当您想要手动指定分组的列标题时效果很好:

在此处输入代码

但是我想将此功能放在一个函数中,我尝试过:

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

但这会返回命名参数作为列标题名称:

在此处输入图像描述

我猜这与惰性评估有关吗?

标签: rknitrkableextra

解决方案


标头是一个以 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")

推荐阅读