首页 > 解决方案 > 在 R flextable 中创建包含合并单元格的单词表

问题描述

我必须在 R 中创建一个导出到 word 的表,并且应该看起来像这样 前表

如您所见,此表中有几个合并和未合并的单元格。旁注我最终将不得不为 100 名患者这样做。

我正在使用 flextable 和 markdown,并通过使用该merge_at()函数合并单元格来合理地接近此表。我的问题是,有没有比我的解决方案更优雅的方式来完成这张表?我对其他软件包持开放态度,但需要留在 R 中。我的代码很少,稍后我会清理标签,所以这不是这里的问题。

我的代码:

library(flextable)
library(dplyr)



sampledata <- data.frame(Name = c("Jane Doe"),CCSSID = c("1"),
                         "DOB"= c(as.Date(10000,origin = "1970-01-01")),
                         AgeofDX = c(10), cancerDX = c("Hodgkin Lymphoma"),
                         dxdate = c(as.Date(13000,origin = "1970-01-01")),
                         center = c("Hosp")
                         
                         ,stringsAsFactors = FALSE)

jane <- filter(sampledata, CCSSID == 1)
#make all character for binding 
jane[] <- sapply(jane, as.character)

jane1 <- jane |> select(1:2) 
colnames(jane1) <- c("var1","var2")
jane2 <- jane |> select(3:4)
colnames(jane2) <- c("var1","var2")
jane3 <- jane |> select(5)
colnames(jane3) <- c("var1")
jane4 <- jane |> select(6)
colnames(jane4) <- c("var1")
jane5 <- jane |> select(7)
colnames(jane5) <- c("var1")


janec <- do.call(bind_rows, list(jane1,jane2,jane3,jane4,jane5
                 ))



flextable(janec)   |>
  merge_at(3,1:2)   |>
  merge_at(4,1:2)   |>
  merge_at(5,1:2)   

柔性表

标签: rflextable

解决方案


推荐阅读