Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用kableExtra将分组变量与剥离/着色匹配_R_Markdown_Kable_Kableextra - Fatal编程技术网

使用kableExtra将分组变量与剥离/着色匹配

使用kableExtra将分组变量与剥离/着色匹配,r,markdown,kable,kableextra,R,Markdown,Kable,Kableextra,我有一个表,每个单独(ID1)都有多条记录,我希望行着色(即kable\u样式(c(“条纹”)按组(ID1)而不是按其他行进行替换。我希望可以添加group\u by(ID1)下面的代码…唉,我仍在寻找解决方案。虽然有,但我一直无法找到解决方案 我还想知道如何为表创建一个外部边框,而不是为每个单元格创建边框 下面是一个可复制的数据集 非常感谢 ```{r echo=F, warning=F, message = FALSE} library(tidyverse) library(kableExt

我有一个表,每个单独(
ID1
)都有多条记录,我希望行着色(即
kable\u样式(c(“条纹”)
按组(
ID1
)而不是按其他行进行替换。我希望可以添加
group\u by(ID1)
下面的代码…唉,我仍在寻找解决方案。虽然有,但我一直无法找到解决方案

我还想知道如何为表创建一个外部边框,而不是为每个单元格创建边框

下面是一个可复制的数据集

非常感谢

```{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 echo=F,warning=F,message=FALSE}
图书馆(tidyverse)
图书馆(kableExtra)
种子(121)
Dat%
总结(一=平均值(第一),
最大值=最大值(两个))%>%
安排(ID1)
可扩展(ExTbl)%>%
可折叠样式(c(“条纹”、“有边框”),全宽=F)
```
>头部(作为数据帧(ExTbl))
ID1 ID2一个最大值
1 AAA鸟0.1532416986
2 AAA类别-0.02726006 83
3 AAA狗-0.19618126 78
4只BBB鸟0.62176633 100
5 BBB类别-0.35502912 77
6只BBB狗-0.2997714587
>

目前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")
库(tidyverse)
图书馆(kableExtra)
种子(121)
Dat%
总结(一=平均值(第一),
最大值=最大值(两个))%>%
安排(ID1)

ind_end我不确定我是否在没有可复制示例的情况下遵循了你的代码。你能使用我提供的数据吗…?@B.Davis我使用了你提供的数据,但我删掉了一些部分:P我刚刚更新了示例。请看一看