#r #r-markdown
Вопрос:
Я создал следующий код:
df <- data.frame(age = round(runif(100, min = 1, max = 80)),
bmi = round(runif(100, min = 19, max = 30)),
amount = round(runif(100, min = 10, max = 10000)),
stringsAsFactors = FALSE)
tableone = CreateTableOne(data = df)
tableone
Теперь я хотел бы включить его в уценку и создать форматированную таблицу, используя какую — то функцию ktable, но, очевидно, она работает только для фреймов данных, и моя переменная «tableone» кажется списком-это правильно?
Можно ли отформатировать выход «tableone» как таблицу?
Спасибо!
Ответ №1:
Я нашел этот обходной путь, может быть, это поможет:
library(tableone)
library(kableExtra)
df <- data.frame(age = round(runif(100, min = 1, max = 80)),
bmi = round(runif(100, min = 19, max = 30)),
amount = round(runif(100, min = 10, max = 10000)),
stringsAsFactors = FALSE)
tb <- CreateTableOne(data = df)
k <- print(tb$ContTable)
print(tb$ContTable) %>%
kbl() %>%
kable_paper("hover", full_width = F)
Это приводит к следующему:
Но функция print()
печатает в вашей консоли также результат , так что при уценке у вас будет также это:
Таким образом, вы можете обмануть его, разделив печатную часть и подавив вывод, а затем распечатать таблицу kable в двух разных чанках:
---
title: "tableone"
author: "S__"
date: "17/8/2021"
output: html_document
---
```{r a echo=FALSE,warning=FALSE,message=FALSE,error=FALSE, results = 'hide'}
library(tableone)
library(kableExtra)
df <- data.frame(age = round(runif(100, min = 1, max = 80)),
bmi = round(runif(100, min = 19, max = 30)),
amount = round(runif(100, min = 10, max = 10000)),
stringsAsFactors = FALSE)
tb <- CreateTableOne(data = df)
k <- print(tb$ContTable)
```
```{r b, echo=FALSE}
k %>%
kbl() %>%
kable_paper("hover", full_width = F)
```