如果在 officedown 中使用 gtsummary + flextable,则表格下方的表格标题

Posted

技术标签:

【中文标题】如果在 officedown 中使用 gtsummary + flextable,则表格下方的表格标题【英文标题】:Table captions underneath tables if using gtsummary + flextable in officedown 【发布时间】:2022-01-18 08:24:27 【问题描述】:

我觉得我错过了一些简单的东西。手指交叉就是这样。

我正在尝试在 officedown 中使用 gtsummary 和 flextable 制作表格。我正在使用 officedown 中“高级 word 文档”模板中的 yaml 选项。

下面是我的代码。前 2 个表格在下面有标题,第三个在上面,应该是这样!

R version 4.1.2 (2021-11-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods  
[7] base     

other attached packages:
 [1] flextable_0.6.10     forcats_0.5.1        stringr_1.4.0       
 [4] dplyr_1.0.7          purrr_0.3.4          readr_2.0.2         
 [7] tidyr_1.1.4          tibble_3.1.5         ggplot2_3.3.5       
[10] tidyverse_1.3.1      gtsummary_1.5.0      palmerpenguins_0.1.0
[13] janitor_2.1.0        officer_0.4.1        officedown_0.2.3    


---
date:  "Last compiled on `r format(Sys.time(), '%d %B, %Y')`"
author: "Kristy Robledo"
title: "Table captions example"
output: 
  officedown::rdocx_document:
    mapstyles:
      Normal: ['First Paragraph']
---

```r setup, include=FALSE
knitr::opts_chunk$set(echo = FALSE, fig.cap = TRUE)
library(officedown)
library(officer)
library(palmerpenguins)
library(gtsummary)
library(tidyverse)
library(flextable)
```


## My tables

```r,tab.id="peng" 

penguins %>%
  tbl_summary(by=species) %>%
  as_flex_table() %>%
  set_caption("Flextable Caption by set_caption") 

```

```r,tab.id="peng2", tab.cap="Caption by knitr" 

penguins %>%
  tbl_summary(by=species) %>%
  as_flex_table() 

```

### Tables from example

```r tab.cap="caption 1", tab.id="mtcars"
head(mtcars)
```


## Reference

see  table \@ref(tab:mtcars) for how I want it and these tables for underneath! 
(table \@ref(tab:peng) and  table \@ref(tab:peng2)!)

【问题讨论】:

我不明白,你想要什么。两张下面有标题的表格,一张上面有标题的表格? 当我编织文档时,“我的表格”部分中表格的表格标题在表格下方有表格标题。最后一个(mtcars)给出了我想要的表格标题->表格上方。 stefan 的代码块选项有效! knitr::opts_chunk$set(tab.topcaption = TRUE) 【参考方案1】:

不是flextableofficedown 方面的专家。但是对我有用的一个选项是通过

设置R Markdown文档的表格标题的位置

knitr::opts_chunk$set(tab.topcaption = TRUE).

完全可重现的代码:

---
date:  "Last compiled on `r format(Sys.time(), '%d %B, %Y')`"
author: "Kristy Robledo"
title: "Table captions example"
output: 
  officedown::rdocx_document:
    mapstyles:
      Normal: ['First Paragraph']
---

```r setup, include=FALSE
knitr::opts_chunk$set(echo = FALSE, fig.cap = TRUE)
library(officedown)
library(officer)
library(palmerpenguins)
library(gtsummary)
library(tidyverse)
library(flextable)
```

```r
knitr::opts_chunk$set(tab.topcaption = TRUE)
```

## My tables

```r,tab.id="peng" 
penguins %>%
  tbl_summary(by=species) %>%
  as_flex_table() %>%
  set_caption("Flextable Caption by set_caption") 

```

```r, tab.id="peng2", tab.cap="Caption by knitr"
penguins %>%
  tbl_summary(by=species) %>%
  as_flex_table() 
```

### Tables from example

```r tab.cap="caption 1", tab.id="mtcars"
head(mtcars)
```

## Reference

see  table \@ref(tab:mtcars) for how I want it and these tables for underneath! 
(table \@ref(tab:peng) and  table \@ref(tab:peng2)!)

【讨论】:

这非常有效!我什至不知道这是一个选项,但我认为这是一个简单的解决方法 - 非常感谢。

以上是关于如果在 officedown 中使用 gtsummary + flextable,则表格下方的表格标题的主要内容,如果未能解决你的问题,请参考以下文章

在一个可执行文件中使用 iPhone OS 3.0 功能(如果可用)和 2.1 功能(如果不可用)

如果使用 ORM,是不是需要在 DB 中定义关系?

如果在sql postgresql中存在,如何使用

为啥我不能使用类别详细视图?如果在django中使用它得到404?

如果使用 then ,是不是需要在 promise 中嵌套 catch?

如果性能不重要,在 Cassandra 中使用 INDEX 是否很糟糕?