Ошибка создания сводной таблицы моделей с использованием пакета texreg с RStudio/rmarkdown/knitr

Я использую RStudio IDE (v 0.99.323) с rmarkdown и я пытаюсь произвести таблицы моделей через knitr с помощью htmlreg производить вывод MSWord. Подозреваю, я пропустил что-то простое.

Блок rmarkdown, добавленный ниже, создает отдельный файл слов "mytable.doc" с красивой таблицей. Однако когда я нажимаю "Вязать слово" в RStudio IDE, строка htmlreg(m) генерирует HTML-код таблицы в документе MSWord. Что я делаю неправильно?

Большое спасибо! --Дол

```{r, results='asis'}
library(MASS)
library(texreg)
data(menarche)
m <- glm(cbind(Menarche, Total-Menarche) ~ Age, family=binomial(logit), data=menarche)

htmlreg(m, file = "mytable.doc", caption="Age at Menarche", inline.css = TRUE, doctype = TRUE, html.tag = TRUE,                                               head.tag = TRUE, body.tag = TRUE, ci.force=TRUE, ci.test=NULL,bold=TRUE)

htmlreg(m)
```

4 ответа

Можете ли вы попробовать последнюю версию texreg 1.34.2 (см. Файл.tar.gz здесь или в этом посте)?

По словам разработчиков RStudio, проблема в том, что они перешли на более новую версию Pandoc, которая больше не работает с HTML-кодом с отступами. Точнее, он интерпретирует текст с отступом в четыре пробела как блок кода, как в нотации Markdown. Смотрите здесь их описание проблемы.

Так что в новом texreg версия, есть новый аргумент под названием indentation = "" в htmlreg функция. По умолчанию отступ отключен. С помощью indentation = " " восстанавливает предыдущее поведение.

Изменить 1: Пожалуйста, также убедитесь, что используете аргументы center = FALSE а также star.symbol = "\\*" для выравнивания слева и для правильного отображения значимости звезд. Звездочки должны быть экранированы, потому что они иначе интерпретируются как часть синтаксиса Markdown:

```{r, results = 'asis'}
htmlreg(m, center = FALSE, star.symbol = "\\*")
```{r}

Для ноутбуков PDF (которые используют LaTeX внутри), используйте texreg:

```{r, results = 'asis'}
texreg(m, float.pos = "h")
```{r}

Редактировать 2: Также прочитайте страницу помощи htmlregособенно в той части, где аргументы htmlreg описаны. Они содержат полезную информацию о том, как сделать документы максимально совместимыми с Markdown, который используется RStudio, Pandoc и knitr для создания документов HTML. В частности, используйте аргументы inline.css = TRUE, doctype = FALSE, html.tag = FALSE, head.tag = FALSE, а также body.tag = FALSE когда вы не собираетесь создавать полноценный HTML-документ.

О MS Word: В комментарии под вопросом вы упомянули, что хотите создать документы HTML или Word. htmlreg Функция предназначена для создания файлов HTML, а не файлов Word (как следует из названия функции). Однако эти файлы HTML можно загрузить в MS Word, потому что Word может интерпретировать HTML-код. Однако knitr создает двоичные документы Word, и встраивание HTML-кода непосредственно в эти двоичные документы Word, насколько мне известно, невозможно (но я могу ошибаться, поскольку не знаю, как knitr создает файлы Word внутри себя). Однако вы можете попытаться создать блокноты HTML, сохранить их на диск, а затем открыть их в MS Word.

Попробуйте это в своем чанке, все еще используя result='asis':

library(pander)
pander(m)

Шляпа подсказка к http://www.r-statistics.com/2013/03/write-ms-word-document-using-r-with-as-little-overhead-as-possible/

Они также предлагают хороший способ уточнить куски кода, чтобы вы могли просто позвонить print(m) и вывод в уценке вызовет соответствующую функцию из pander,

Автор пакета обновил texreg для отключения отступов по умолчанию.

См. http://rmarkdown.rstudio.com/authoring_migrating_from_v1.html после обновления пакета с помощью: install.packages ("texreg", repos = " http://r-forge.r-project.org/")

Блок ниже, помещенный в документ rmarkdown (.Rmd), теперь создает красивую HTML-таблицу, когда я "Вяжу HTML" в RStudio. Тем не менее, Knit Word по-прежнему не дает ожидаемого результата.

`` `{r, results = 'asis'}

библиотека (texreg)

htmlreg (m, caption = "Возраст при менархе", caption.above=TRUE, ci.force=TRUE, ci.test=NULL, полужирный = TRUE)

`` `

Это проблема pandoc уценка, или из htmlreg не создает правильный отступ. Я не совсем понимаю, если это ошибка или особенность из-за загадочного:

http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html

Попробуйте простой .md (не .rmd) файл следующим образом:

<h1>Works</h1>

<table border="8">
  <tr>
  <td>111</td>
  <td>222</td>
  <td>444</td>
  </tr>
</table>

<h1>Not what you want</h1>

<table border="8">
  <tr>
    <td>111</td>
    <td>222</td>
    <td>444</td>
  </tr>
</table>

<h1>Works too (not in screenshot)</h1>

<table border="8">
  <tr><td>111</td><td>222</td><td>444</td></tr>
</table>

вывод необработанного HTML

Другие вопросы по тегам