我想将 R 控制台的输出导出到 Word,并很好地对齐所有内容,如 R 控制台中所示。
我读到我必须创建某种单词 template.doc 或 template.docx 才能实现此目的。
我不知道该怎么做,也不知道创建该模板时必须特别注意哪些元素。
library(officer)
library(broom)
set.seed(1000)
my_data <- rbind(
data.frame(time = "Pre", treatment = "Control", response = rnorm(100, mean=1)),
data.frame(time = "Pre", treatment = "Treatment", response = rnorm(100, mean=2)),
data.frame(time = "Post", treatment = "Control", response = rnorm(100, mean=1)),
data.frame(time = "Post", treatment = "Treatment", response = rnorm(100, mean=2))
) %>% mutate(time = factor(time, levels = c("Pre", "Post"))) %>%
mutate(treatment = factor(treatment, levels = c("Control", "Treatment")))
model3 <- lm(response ~ time * treatment, data = my_data)
docx <- read_docx()
z5 <- capture.output(kableExtra::kable(tidy(model3)))
z5 <- as.data.frame(z5)
docx <- to_docx(docx, z5, "Title 1", "Subtitle 1")
fn <- tempfile(fileext = ".docx")
print(docx, fn)
首先给我这个:
其次还有这个:
这里的所有内容在文字上都是错位的,需要大量调整。我希望可以避免这种情况,并且在文字上看起来既美观又直接。我的第二个问题是如何在我的工作目录中创建名为“fn”的临时文件,因为它被保存并深深隐藏在 Local\Temp 等长文件路径中。
我将非常感谢您的帮助并解释该过程涉及的所有必要步骤,特别是创建该单词模板,以免弄乱我的单词当前设置中的任何内容。
虽然以下内容与
{officer}
有所不同,但这就是我获取原始 Markdown 管道表( kableExtra::kable(tidy(model3))
的控制台输出)及其使用四开到 Word / docx 的方式:
---
format: docx
---
```{r}
#| warning: false
#| echo: false
#| output: false
library(dplyr, warn.conflicts = FALSE)
library(broom)
set.seed(1000)
my_data <- rbind(
data.frame(time = "Pre", treatment = "Control", response = rnorm(100, mean=1)),
data.frame(time = "Pre", treatment = "Treatment", response = rnorm(100, mean=2)),
data.frame(time = "Post", treatment = "Control", response = rnorm(100, mean=1)),
data.frame(time = "Post", treatment = "Treatment", response = rnorm(100, mean=2))
) %>% mutate(time = factor(time, levels = c("Pre", "Post"))) %>%
mutate(treatment = factor(treatment, levels = c("Control", "Treatment")))
model3 <- lm(response ~ time * treatment, data = my_data)
```
```{r}
#| echo: false
knitr::kable(tidy(model3), format = "pipe") |>
as.character() |>
paste0(collapse = "\n") |>
cat()
```
```{r}
#| label: tbl-pipe
#| tbl-cap: "Rendered pipe format"
#| echo: false
knitr::kable(tidy(model3), format = "pipe")
```