gpt4 book ai didi

r - Stargazer 输出出现在文本下方 - rmarkdown to pdf

转载 作者:行者123 更新时间:2023-12-05 01:43:10 24 4
gpt4 key购买 nike

问题

在 RStudio 中使用 rmarkdown 时,我的 stargazer(glm()) 输出位于我想要的文本下方。它位于与 r block 不同的位置。

PDF 创建完美,只是 stargazer 输出的位置有问题。

背景

我正在尝试创建一个 PDF,其中包含大量文本和一些段落之间的 stargazer glm() 输出。当我在我的 rmarkdown 文件中放置多个 stargazer() 输出,然后“编织”为 PDF 时,stargazer() 输出被移到文本下方。

我希望 stargazer 输出 位于我放置 r block 的位置。

以类似方式插入 ggplot2() 输出时,我没有遇到同样的问题。

失败的尝试

我已经尝试了尽可能多的组合来定位我的 r chunks 参数。 (以防万一)

我已经尝试了段落/标题/r-chunks/等之前和之后的制表符与空格的每种组合。 (这是我曾经遇到过 ggplot2 输出的问题)

我引用了以下 StackOverflow 问题:

可重现的例子

我的工作问题的可重现示例:

---
title: "Untitled"
author: "Me"
output: pdf_document
---

```{r setup, echo = FALSE}
library(stargazer)

mtcars_glm <- glm(formula = vs ~ disp + am + cyl + mpg, family = "binomial", data = mtcars)

```

# Heading1

I have tried creating paragraphs like this.

I have also tried creating paragraphs with 2 indents.

## Heading2

Lets try to create a couple of nice tables with stargazer.

```{r attempt1, results = 'asis', echo = FALSE}

stargazer(mtcars_glm, ci=FALSE, no.space = TRUE, report = c("vc*"), header = FALSE)

```

And then we will add some text down here, too.

```{r attempt2, results = 'asis', echo = FALSE}

stargazer(mtcars_glm, ci=FALSE, no.space = TRUE, report = c("vc*"), header = FALSE)

```

And some more text.

```{r attempt3, results = 'asis', echo = FALSE}

stargazer(mtcars_glm, ci=FALSE, no.space = TRUE, report = c("vc*"), header = FALSE)

```

Lets see what happens.

### Heading3

```{r plot_attempt}

boxplot(mtcars$mpg ~ mtcars$cyl)
```

# Second Section

## Second Header

这是输出的 3 页:

第 1 页 Page 1

第 2 页 Page 2

第 3 页 Page 3

这是我的 session 信息:

R version 3.4.4 (2018-03-15)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

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

other attached packages:
[1] stargazer_5.2.1

loaded via a namespace (and not attached):
[1] compiler_3.4.4 backports_1.1.2 magrittr_1.5 rprojroot_1.3-2 htmltools_0.3.6 tools_3.4.4 yaml_2.1.19 Rcpp_0.12.16 stringi_1.1.7 rmarkdown_1.9
[11] knitr_1.20 stringr_1.3.0 digest_0.6.15 evaluate_0.10.1

谢谢

如果你能帮助我,谢谢。我对 LaTeX 或 Pandoc 了解不多,所以我想这是某种知识差距。如果您认为自己找到了解决方案,请随时为我指出正确的方向。

我很感激。

最佳答案

如果您设置 float = FALSE,您将没有 float 环境附带的任何功能,例如标题(即标题)或标签。相反,请考虑使用 float 包设置无条件的表放置。例如,考虑以下文档(我使用 \clearpage 在第 2 页开始正文,以便我们可以在屏幕截图中看到相邻的页面):

---
title: "Untitled"
author: "Me"
header-includes:
- \usepackage{lipsum}
output: pdf_document
---
\clearpage
\lipsum[1]
```{r setup, echo = FALSE, include = FALSE}
library(stargazer)
mtcars_glm <- glm(formula = vs ~ disp + am + cyl + mpg, family = "binomial", data = mtcars)
```

Table 1 here.
```{r tab1, results = 'asis', echo = FALSE}
stargazer(mtcars_glm, ci=FALSE, no.space = TRUE, report = c("vc*"),
header = FALSE, title = "Table 1")
```

\lipsum[2-3]
Table 2 here.
```{r tab2, results = 'asis', echo = FALSE}
stargazer(mtcars_glm, ci=FALSE, no.space = TRUE, report = c("vc*"),
header = FALSE, title = "Table 2")
```

\lipsum[4]

这给 enter image description here

其中表 2 已移至下一页,表 2 之后的文本已上移。这就是 LaTeX 的行为方式;它不想在页面底部留下太多空白。要坚持表 2 跟在一段文本之后,您可以使用 H 说明符(这需要 float LaTeX 包)。这是相同的文档,但请注意 tab2 block 中的 table.placement 参数:

---
title: "Untitled"
author: "Me"
header-includes:
- \usepackage{float}
- \usepackage{lipsum}
output: pdf_document
---
\clearpage
\lipsum[1]
```{r setup, echo = FALSE, include = FALSE}
library(stargazer)
mtcars_glm <- glm(formula = vs ~ disp + am + cyl + mpg, family = "binomial", data = mtcars)
```

Table 1 here.
```{r tab1, results = 'asis', echo = FALSE}
stargazer(mtcars_glm, ci=FALSE, no.space = TRUE, report = c("vc*"),
header = FALSE, title = "Table 1")
```

\lipsum[2-3]
Table 2 here.
```{r tab2, results = 'asis', echo = FALSE}
stargazer(mtcars_glm, ci=FALSE, no.space = TRUE, report = c("vc*"),
header = FALSE, title = "Table 2", table.placement = "H")
```

\lipsum[4]

这给 enter image description here

表格放在正文之后(“这里是表 2”),即使在页面底部留有空白也是如此。另一种方法是 placeins 包中的 \FloatBarrier;见https://tex.stackexchange.com/questions/19766/how-to-control-the-position-of-floating-images .

通常,您应该将 float (即表格和图形)位置留给 LaTeX。参见 https://tex.stackexchange.com/questions/39017/how-to-influence-the-position-of-float-environments-like-figure-and-table-in-lat进行广泛的讨论。

关于r - Stargazer 输出出现在文本下方 - rmarkdown to pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50243929/

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