首页 > 解决方案 > 仅折叠 R 中数据框的第一列,其余列数据完好无损

问题描述

我是 R 新手,我有一个如下所示的数据框

    
Gender Not_Hired Division Hired Total %Hired Odds
Male    490        F       31   521   6.0   0.063
Male    193        E       74   267   27.7  0.383
Male    389        D      193   582   33.2  0.496
Male    286        C      167   453   36.9  0.584
Male    289        B      493   782   63.0  1.706
Male    437        A      715   1152  62.1  1.636
Female  442        F      33    475   6.9   0.075
Female  417        E      131   548   23.9  0.314
Female  341        D      183   524   34.9  0.537
Female  546        C      282   828   34.1  0.516
Female  11         B      24    35    68.6  2.182
Female  27         A      124   151   82.1  4.593

我正在寻找类似的输出 输出

我试过下面的代码

output %>% 
   select(Division, everything()) %>%
   group_by(Division) %>% ungroup() %>%
  kbl(caption = 'Company wide hiring',
      col.names = c('','','Hired','Not Hired','Total','%Hired','Odds(Hired)'),
      digits = 3) %>%
  kable_styling()

并得到以下输出: 我的输出

如何从我的输出获得所需的输出。有什么建议/想法吗?

标签: rdataframekablekableextra

解决方案


看起来您想collapse_rows在第一列上使用。但是,要准备kable输出数据,请确保将DivisionandGender作为前两列,并使用arrangeby ,Division以便具有 common 的行Division彼此相邻。

library(magrittr)
library(kableExtra)

df %>%
  select(Division, Gender, everything()) %>%
  arrange(Division) %>%
  kbl(caption = 'Company wide hiring',
      col.names = c('','','Hired','Not Hired','Total','%Hired','Odds(Hired)'),
      digits = 3) %>%
  kable_styling() %>%
  collapse_rows(columns = 1)

输出

第一列上带有 collapse_rows 的表


推荐阅读