仅对某些列进行水平合并

Merge horizontally only for certain columns flextable

我有以下 table:

 tmp <- structure(list(SOC = c("Blood", "", "", "Gast", "", "", "", "Skin", 
                  "", "", "Adverse Event"), `Adverse Event` = c("Blood", "Raised Alt", "Raised Ast", 
                  "Gast", "Bloating", "Diarrhoia", "Vomiting", "Skin", "Reddness", 
                  "Rash", "Any Adverse Event"), C11 = c("", "0", "0", "", "0", 
                  "2", "0", "", "0", "0", "2"), C21 = c("", "0", "0", "", "1", 
                  "0", "1", "", "1", "0", "3"), T1 = c("", "0", "0", "", "1", "2", 
                  "1", "", "1", "0", "3"), C12 = c("", "1", "0", "", "0", "0", 
                  "0", "", "0", "1", "2"), C22 = c("", "0", "0", "", "0", "0", 
                  "1", "", "0", "0", "1"), T2 = c("", "1", "0", "", "0", "0", "1", 
                  "", "0", "1", "2"), C23 = c("", "0", "1", "", "0", "0", "0", 
                  "", "0", "0", "1"), T3 = c("", "0", "1", "", "0", "0", "0", "", 
                  "0", "0", "1"), C14 = c("", "1", "0", "", "0", "0", "0", "", 
                  "0", "0", "1"), T4 = c("", "1", "0", "", "0", "0", "0", "", "0", 
                  "0", "1")), row.names = c(NA, 11L), class = "data.frame")

我把它变成了 flextable 像这样:

 tmp %>% regulartable()

现在我试图仅在 SOCAdverse Event 列中水平合并匹配值。

我试过使用 merge_h() 但这并没有给我 select 某些列的选项,所以如果有重复的值,它也会合并所有其他列。

我试过 merge_at() 但如果所有 ij 值都不连续,它就不起作用,而我的不会。

有谁知道只使 merge_h() 应用于某些列的方法吗?或者任何其他实现我所追求的方式?

编辑:我正在尝试制作一个看起来有点像这样的 flextable,但没有合并任何数字列。正如您在右下角看到的,所有 1 都已合并。我只想合并前两列,以便创建缩进效果。

您可以创建一个 for 循环遍历有问题的行,然后只合并前两列:

lines <- c(1, 5, 7, 10)
for (ll in lines){
  tmp <- merge_at(i = ll, j = 1:2, part = "body")
}

可能不是最优雅的,但它会满足你的需要