r-降价-动态多行标题,第二行相同
我试图在r-markdown中创建一个多行标题,但我遇到了问题1.)使其成为动态的,2.)允许标题的第二行相同 例如,在下面的数据集中,您可以看到有两个组,花瓣和间隔。每个都有长度和宽度r-降价-动态多行标题,第二行相同,r,r-markdown,kable,kableextra,flextable,R,R Markdown,Kable,Kableextra,Flextable,我试图在r-markdown中创建一个多行标题,但我遇到了问题1.)使其成为动态的,2.)允许标题的第二行相同 例如,在下面的数据集中,您可以看到有两个组,花瓣和间隔。每个都有长度和宽度 library(tidyverse) data <- iris[c(1, 51, 101), ] %>% gather(key = key, value = value, -Species) %>% separate(col = key, into = c("Group", "k
library(tidyverse)
data <- iris[c(1, 51, 101), ] %>%
gather(key = key, value = value, -Species) %>%
separate(col = key, into = c("Group", "key"), sep = "\\.") %>%
spread(key = key, value = value, )
data
# Species Group Length Width
# 1 setosa Petal 1.4 0.2
# 2 setosa Sepal 5.1 3.5
# 3 versicolor Petal 4.7 1.4
# 4 versicolor Sepal 7.0 3.2
# 5 virginica Petal 6.0 2.5
# 6 virginica Sepal 6.3 3.3
我一直在试验
kable
和flextable
软件包,但这些示例似乎对我试图避免的标题进行了硬编码。对于flextable,应该是这样的:
library(tidyverse)
library(flextable)
data <- iris[c(1, 51, 101), ]
header_df <- tibble( key = colnames(data) ) %>%
separate(col = key, into = c("Group1", "Group2"), sep = "\\.", remove = FALSE, fill = "left")
data %>%
select(Species, everything()) %>%
flextable() %>%
set_header_df(mapping = header_df, key = "key") %>%
merge_h(part = "header") %>%
theme_booktabs()
库(tidyverse)
图书馆(flextable)
数据%
选择(种类,所有内容())%>%
flextable()%%>%
设置标题(映射=标题标题标题,key=“key”)%>%
合并(part=“header”)%>%
主题(booktab)
您可以查看
formattable
或kable
,谢谢@David Gohel。我想我开始明白了。我需要一个列的键。如果查看示例中的“原始”数据样本是如何构造的,我是否需要将其返回到原始iris
表单(spetal.width等)?或者,从我的示例数据的结构(两列长度和宽度,然后是一组列)到您提供的数据,有没有其他不同的方法?@alexb523 flextable不会重新构造您的df,因此我猜答案是您不能将其结构保持为数据
,您需要使用data.table::dcast(或tidyr::spread)为flextable构建它。是否有一种好的方法将物种(单词)合并到中心?是的,请参见?flextable::align
。它应该是对齐的(ft,j=1,align=“center”,part=“header”)
library(tidyverse)
library(flextable)
data <- iris[c(1, 51, 101), ]
header_df <- tibble( key = colnames(data) ) %>%
separate(col = key, into = c("Group1", "Group2"), sep = "\\.", remove = FALSE, fill = "left")
data %>%
select(Species, everything()) %>%
flextable() %>%
set_header_df(mapping = header_df, key = "key") %>%
merge_h(part = "header") %>%
theme_booktabs()