繁体   English   中英

R 弹性表垂直合并以另一列为条件

[英]R flextable vertical merge conditional on another column

在下面的示例中,我想垂直合并第 1 列中的类似值,然后垂直合并第 2 列中的类似值,条件是它们在第 1 列中的同一组中。现在它当前跨组“a”合并“G2”和v1 中的“b”,这不是我想要的。 有没有办法使用内置的弹性表 function 或类似的方法来实现这一点?

library(flextable)

dat <- data.frame(v1 = c(rep("a", 3), rep("b", 3), rep("c", 3)),
                  v2 = c("G1", "G1", "G2", "G2", "G3", "G3", "G4", "G5", "G6"),
                  v3 = c(1:9), stringsAsFactors = FALSE)

ft <- regulartable(dat)
ft <- merge_v(ft,j=c(1:2))

预期产出

我会为此创建一个变量(并使用它但不显示它):

library(flextable)

dat <- data.frame(v1 = c(rep("a", 3), rep("b", 3), rep("c", 3)),
                  v2 = c("G1", "G1", "G2", "G2", "G3", "G3", "G4", "G5", "G6"),
                  v3 = c(1:9), 
                  stringsAsFactors = FALSE)
dat$v_dummy <- paste0(dat$v1, dat$v2)
ft <- flextable(dat, col_keys = c("v1", "v2", "v3"))
ft <- theme_box(ft)
ft <- merge_v(ft, j = c("v1", "v_dummy"), target = c("v1", "v2"))
ft

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM