说我有2个弹性表:
ft1 <- regulartable(head(iris))
ft2 <- regulartable(tail(iris))
它们具有不同的格式:
ft1 <- bg(ft1, bg="green")
ft2 <- color(ft2, color = "blue")
在这两个已经是可伸缩的表格之后,是否有办法合并它们并保持格式?
我可以使用以下方法合并它们:
ft3 <- regulartable(rbind(ft1$body$dataset, ft2$body$dataset))
但是我丢失了所有格式。
我知道在转换为弹性表之前合并数据帧会比较容易,但是实际数据的生成方式却变得如此困难,因为我要合并的两个弹性表是我编写的其他函数的结果。
编辑:
目标是保持单独的格式,如下所示:
答案 0 :(得分:0)
不太优雅,但可能会完成工作...
library(flextable)
library(magrittr)
ft1 <- regulartable(head(iris))
ft2 <- regulartable(tail(iris))
ft_formatting <- function(ft1, ft2,
color1 = "black", bg1 = "white", color2 = "black", bg2 = "white") {
n_row1 <- nrow(ft1$body$dataset)
n_row2 <- nrow(ft2$body$dataset)
n_col1 <- ncol(ft1$body$dataset)
n_col2 <- ncol(ft2$body$dataset)
i_1 <- 1:n_row1
i_2 <- n_row1+1:n_row2
regulartable(rbind(ft1$body$dataset, ft2$body$dataset)) %>%
bg(i = i_1, j = 1:5, bg = bg1) %>%
color(i = i_1, j = 1:n_col1, color = color1) %>%
bg(i = i_2, j = 1:5, bg = bg2) %>%
color(i = i_2, j = 1:n_col2, color = color2)
}
ft_formatting(ft1, ft2, bg1 = "green", color2 = "blue")