Ошибка создания сводной таблицы моделей с использованием пакета 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>