Выходные данные Stargazer отображаются под текстом. - PullRequest
0 голосов
/ 09 мая 2018

Проблема

При использовании rmarkdown в RStudio мой вывод stargazer(glm()) располагается под текстом, который я бы хотел.Он расположен в другом месте, чем r chunk.

PDF создан отлично, проблема заключается только в положении вывода stargazer.

Фон

Я пытаюсь создать PDF-файл с большим количеством текста и парой выводов stargazer glm() между несколькими абзацами.Когда я помещаю более одного stargazer() вывода в файл rmarkdown и затем «Вяжу» в PDF, вывод stargazer() перемещается вниз под текстом.

Я бы хотел, чтобы stargazer output был расположенгде я положил r chunks.

У меня нет такой же проблемы при использовании вставки вывода ggplot2() подобным образом.

Неудачные попытки

Я пробовал столько жекомбинации, как я знаю, как позиционировать мои r chunks аргументы.(На всякий случай)

Я пробовал каждую комбинацию табуляции и пробелов, до и после параграфов / заголовков / r-чанков / и т. Д.(Это была проблема, которая у меня когда-то была с выходом 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

Вот мой sessionInfo:

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, поэтому я думаю, что это своего рода пробел в знаниях.Не стесняйтесь просто указать мне правильное направление, если вы думаете, что нашли решение.

Я ценю это.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Если вы установите float = FALSE, у вас не будет никаких функций, которые поставляются с плавающей средой, таких как подписи (то есть заголовок) или метки. Вместо этого рассмотрите возможность установки безусловного размещения таблицы с пакетом 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). Вот тот же документ, но обратите внимание на аргумент table.placement в блоке tab2:

---
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 здесь»), даже за счет оставления пустого пространства внизу страницы. Альтернатива - \FloatBarrier из пакета placeins; см https://tex.stackexchange.com/questions/19766/how-to-control-the-position-of-floating-images.

Как правило, вы должны оставлять плавающие (то есть таблицы и рисунки) размещения в LaTeX. См. https://tex.stackexchange.com/questions/39017/how-to-influence-the-position-of-float-environments-like-figure-and-table-in-lat для подробного обсуждения.

0 голосов
/ 09 мая 2018

Set float = FALSE. Из руководства

float: a logical value that indicates whether the resulting table will be a 
floating table (set off, for instance, by \begin{table} and \end{table}).

В LaTeX среда table является плавающей.

1008 * Е.Г. *

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