【问题标题】:Match grouping variable with stripping/shading using kableExtra使用 kableExtra 将分组变量与剥离/着色匹配
【发布时间】:2019-01-29 00:18:59
【问题描述】:

我有一张表,每个人都有多条记录 (ID1),我希望行底纹(即 kable_styling(c("striped")) 按组(ID1)而不是每隔一行交替。我希望我可以在下面的代码中添加group_by(ID1)...唉,我仍在寻找解决方案。虽然有lots of helpful tips are shown here,但我一直无法找到解决方案。

我也想知道如何为表格制作单个外部边框,而不是为每个单元格设置边框。

以下是可重现的数据集。

提前非常感谢。

```{r echo=F, warning=F, message = FALSE}
library(tidyverse)
library(kableExtra)

set.seed(121)
Dat <- data.frame(
  ID1 = sample(c("AAA", "BBB", "CCC","DDD"), 100, replace = T),
  ID2 = sample(c("Cat", "Dog", "Bird"), 100, replace = T),
  First = rnorm(100),
  Two = sample.int(100)) 

ExTbl <- Dat %>%
  group_by(ID1, ID2) %>%
  summarize(One = mean(First),
            Max = max(Two)) %>%
  arrange(ID1) 


kable(ExTbl) %>%
  kable_styling(c("striped", "bordered"), full_width = F)


```

> head(as.data.frame(ExTbl) )
  ID1  ID2         One Max
1 AAA Bird  0.15324169  86
2 AAA  Cat -0.02726006  83
3 AAA  Dog -0.19618126  78
4 BBB Bird  0.62176633 100
5 BBB  Cat -0.35502912  77
6 BBB  Dog -0.29977145  87
>

【问题讨论】:

    标签: r markdown kable kableextra


    【解决方案1】:

    目前在 kableExtra 中没有直接的方法,但这是我上次使用的方法。也许我应该把它装进这个包里。

    library(tidyverse)
    library(kableExtra)
    
    set.seed(121)
    Dat <- data.frame(
      ID1 = sample(c("AAA", "BBB", "CCC","DDD"), 100, replace = T),
      ID2 = sample(c("Cat", "Dog", "Bird"), 100, replace = T),
      First = rnorm(100),
      Two = sample.int(100)) 
    
    ExTbl <- Dat %>%
      group_by(ID1, ID2) %>%
      summarize(One = mean(First),
                Max = max(Two)) %>%
      arrange(ID1) 
    
    ind_end <- cumsum(rle(as.character(ExTbl$ID1))$lengths)
    ind_start <- c(1, ind_end[-length(ind_end)] + 1)
    pos <- purrr::map2(ind_start, ind_end, seq)
    pos <- unlist(pos[1:length(pos) %% 2 != 0])
    
    kable(ExTbl) %>%
      kable_styling(c("bordered"), full_width = F) %>%
      row_spec(pos, background = "#EEEEEE")
    

    【讨论】:

    • 如果没有可重现的示例,我不确定我是否遵循了您的代码。您可以使用我提供的数据吗...?
    • @B.Davis 我正在使用您提供的数据,但我删除了一些部分:P 我刚刚更新了示例。请看一下
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多