以下是使用pixiedust
生成表格的解決方法。 pixiedust
可以通過Hmisc::latexTranslate
「清理」單元格的內容。默認情況下,該選項關閉。
解決方案是作爲一個RMD文件
---
title: "Untitled"
output: pdf_document
header-includes:
- \usepackage{amssymb}
- \usepackage{arydshln}
- \usepackage{caption}
- \usepackage{graphicx}
- \usepackage{hhline}
- \usepackage{longtable}
- \usepackage{multirow}
- \usepackage[dvipsnames,table]{xcolor}
---
```{r, include = FALSE}
library(Hmisc)
library(compareGroups)
library(broom)
library(magrittr)
library(pixiedust)
```
```{r}
label(mtcars$mpg) <- "[$\\frac{miles}{gallon}$]"
# descriptive table of mpg by am
tab <- createTable(
compareGroups(data = mtcars,
gear ~ mpg + qsec)
)
tab_df <-
tab$descr %>%
tidy()
tab_head <-
c("", attr(tab, "ylevels"), "p.overall",
"", sprintf("N=%s", tab$avail[1, -c(1, (ncol(tab$avail) - 0:1))]), "") %>%
matrix(nrow = 2,
byrow = TRUE) %>%
tidy %>%
setNames(names(tab_df))
dust(tab_df,
float = FALSE) %>%
redust(tab_head, part = "head") %>%
medley_bw()
```
![enter image description here](https://i.stack.imgur.com/trF4d.png)
如果你想成爲一個觸摸更容易,你可以擴展dust
方法包括dust.createTable
方法(這是原始的,並我沒有想過通過所有的用例,但例如)
dust.createTable <- function(object, ...){
obj_df <-
object$descr %>%
broom::tidy()
obj_head <-
c("", attr(object, "ylevels"), "p.overall",
"", sprintf("N=%s", object$avail[1, -c(1, (ncol(object$avail) - 0:1))]), "") %>%
matrix(nrow = 2,
byrow = TRUE) %>%
broom::tidy() %>%
stats::setNames(names(obj_df))
pixiedust::dust(obj_df) %>%
pixiedust::redust(obj_head, part = "head")
}
compareGroups(data = mtcars,
gear ~ mpg + qsec) %>%
createTable() %>%
dust()
compareGroups(data = mtcars,
gear ~ mpg + qsec + wt) %>%
createTable() %>%
dust()
恐怕看起來硬編碼到'export2latex.createTable'中。似乎沒有關閉它的選項。 – Benjamin