如何使用分组变量对kableExtra中的行进行分组?

彼得
library(kableExtra)
library(tidyverse)

MWE数据集(组=分组变量)

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

这是我要实现的目标:

kable(tib[, 2]) %>% 
  pack_rows(index = c("a" = 2, "b" = 1, "c" = 3))

但是,如果使用30个或更多唯一的分组标识符,则手动执行此操作很繁琐。所以我一直在尝试一种程序化方法

我尝试使用游程长度编码,但无法正常运行;例如,此代码失败:

kable(tib[, 2]) %>% 
  pack_rows(rle(tib$group)[2], rle(tib$group)[1])

对于解决此问题的任何指示或建议,我将不胜感激。

凯斯

您可以使用一个简单的table

kable(tib[, 2]) %>% 
  pack_rows(index = table(tib$group))

在此处输入图片说明

如果您的索引行不是按字母顺序排列的,则可以使用fct_inorderfrom forcats(包含在中tidyverse)进行以下操作

tib2 <- tibble(group = c("b", "c", "c", "c", "a", "a"),
              var = 1:6)

kable(tib2[, 2]) %>% 
  pack_rows(index = table(fct_inorder(tib2$group)))

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章