gpt4 book ai didi

html - 将文件中的html表格输入R Markdown,编织到Word?

转载 作者:行者123 更新时间:2023-12-04 09:01:22 26 4
gpt4 key购买 nike

我正在处理一个 R Markdown 文件,我们需要能够将其编织成 pdf 和 Word(对于共同作者)。我们还在 stargazer 中生成了回归表。由于数据的大小,将分别计算并创建两个文件:regression_table.tex 和 regression_table.html。
编织到 pdf 时,我可以使用 latex 命令轻松地将表格添加到 R Markdown \input .

\input{"regression_table.tex"}
但是,要编织到 Word,我无法找到与 \input 等效的简单方法。对于 html 文件。一种选择是在 Word 中手动插入 html 表格文件,这可以作为低技术备份选项正常工作。另一个部分解决方案使用来自 a related question 的修改代码.使用下面的代码块,我可以编织到 html,然后将 html 文档导入 Word。这保持了表格格式,但其他格式,如标题和数字,会变得困惑。
```{r echo = FALSE, results = 'asis'}
tmp <- paste(readLines(here("regression_table.html")), collapse="\n")

cat(tmp)
```
是否有一个简单的等价于 \input文件中的 html 表格可以很好地编织到 Word?

最佳答案

这不是一个理想的解决方案,但使用 webshot包,很容易将 html 文件转换为图像文件,然后可以使用 knitr::include_graphics 轻松导入 R Markdown .这种方法的三个优点是(1)它可以自动工作; (2)它很好地保留了格式; (3) 它可以与其他制表包一起使用,或者就此而言,可以与任何外部 html 文件(或网页)一起使用。此外,我在顶部添加了一些代码,因此 Rmd 会根据我是编成 pdf 还是 word 自动合并正确的外部文件(.tex 或 .html)。
请注意,如果您还没有使用过 webshot之前,需要运行webshot::install_phantomjs() (感谢 JacobG 指出这一点)。

```{r create_output_logicals, include = FALSE}
# https://stackoverflow.com/questions/62389948/knitris-word-output-to-check-if-the-current-output-type-is-word-just-like

is_word_output <- function(fmt = knitr:::pandoc_to()) {
length(fmt) == 1 && fmt == "docx"
}

# create logical variables that indicate knitting output format
latex_lgl <- knitr::is_latex_output()
html_lgl <- knitr::is_html_output()
word_lgl <- is_word_output()
```

```{r load_packages, include = FALSE}
library(stargazer)
library(webshot)
```

```{r create_table, include = FALSE}
lm1 <- lm(mpg ~ wt, data = mtcars)
lm2 <- lm(mpg ~ wt + cyl, data = mtcars)

stargazer(
lm1, lm2,
type = 'html',
header = FALSE,
out = 'regression_table.html'
)

stargazer(
lm1, lm2,
type = 'latex',
header = FALSE,
out = 'regression_table.tex'
)
```

```{r regression_table_word, echo = FALSE, eval = word_lgl}

webshot(
url = "regression_table.html",
file = "regression_table.png",
zoom = 2 # doubles the resolution
)

knitr::include_graphics("regression_table.png")

```

```{r regression_tables_tex, results = 'asis', echo = FALSE, eval = latex_lgl}
# if not knit to word document, use latex \input for tex tables
# line spacing assumes YAML/header includes: \usepackage{setspace}
# header-includes: |
# \usepackage{setspace}\doublespacing

cat(
'\\singlespacing
\\input{"regression_table.tex"}
\\doublespacing'
)
```
请注意,表格/图像不会在 Word 中居中。由 webshot 创建的图像用空格填充。如果居中很重要,您需要使用 cliprect 来修剪图像。 webshot() 中的选项或使用 magick 之类的东西与 magick::image_trim 打包.此外,您可能需要 create a Word template .

关于html - 将文件中的html表格输入R Markdown,编织到Word?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63551701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com