В дальнейшем я предполагаю, что вы используете RStudio для создания документов Word. Я считаю, что это проблема, связанная с программным обеспечением. Вкратце: вы не можете встроить HTML-код при связывании документов Word.
Функция htmlreg
в пакете texreg
создает таблицы HTML (не таблицы Markdown). В надлежащий документ Markdown HTML может быть встроен, поскольку это часть спецификации Markdown. Например, вы можете просто написать следующий код в своем документе Markdown, и он будет переведен в таблицу с двумя столбцами:
<table>
<tr>
<td>upper left</td>
<td>upper right</td>
</tr>
<tr>
<td>lower left</td>
<td>lower right</td>
</tr>
</table>
Например, если вы используете функцию «Связать в HTML» в RStudio, или если вы используете любой другой редактор / просмотрщик Markdown, это даст следующий результат:
upper left upper right
lower left lower right
Если вы попробуете это в документе Markdown в RStudio и создадите из него HTML-документ, это сработает. Обратите внимание, что движок Pandoc, который используется под капотом в RStudio, не допускает никаких отступов.
Однако, если вы попытаетесь создать документ Word, документ не будет интерпретирован как (правильный) код Markdown (в том смысле, что встраивание HTML невозможно), т. Е. Вы получите все ячейки, перечисленные только по вертикали, но не отформатированные в виде таблицы. . Другими словами, использование функции «Связать в Word» не будет интерпретировать фрагменты HTML, встроенные в Markdown. Результат будет таким:
upper left
upper right
lower left
lower right
Вы можете попробовать это в своем собственном документе в RStudio.
Именно поэтому функция «Связать с Word» не встраивает таблицы, созданные htmlreg
должным образом, в файл Word.
Вот решение, которое правильно работает с функцией «Связать в HTML», поскольку эта функция, кажется, правильно интерпретирует код HTML: Во-первых, давайте сделаем некоторые подготовительные шаги. Загрузите пакет texreg
и оцените простую линейную модель в целях иллюстрации:
```{R echo = FALSE, include = FALSE}
library("texreg")
ctl <- c(4.17, 5.58, 5.18, 6.11, 4.50, 4.61, 5.17, 4.53, 5.33, 5.14)
trt <- c(4.81, 4.17, 4.41, 3.59, 5.87, 3.83, 6.03, 4.89, 4.32, 4.69)
group <- gl(2, 10, 20, labels = c("Ctl", "Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
```
Затем создайте таблицу HTML следующим образом:
```{r summary,echo = FALSE, results = "asis"}
htmlreg(lm.D9, star.symbol = "\\*", center = TRUE, doctype = FALSE, caption = "")
```
Обратите внимание, что здесь необходимо results = "asis"
. Также обратите внимание, что функция htmlreg
по умолчанию создает строку для типа документа, так как эту функцию также можно использовать для создания полных HTML-документов. Нам нужно выключить это, чтобы он заработал. В вашем примере вы правильно экранировали символы звездочки. Результатом будет правильная таблица регрессии, встроенная в документ HTML. Если вы теперь используете функцию «Связать в Word», она также будет включать содержимое таблицы, но, как и в приведенном выше примере HTML, она просто перечислит все ячейки таблицы в виде отдельных строк и не будет правильно отформатирована как таблица.
Также можно использовать функцию «Связать в PDF» в RStudio для создания PDF-документов с помощью LaTeX. В этом случае вам, очевидно, придется заменить HTML-таблицу таблицей LaTeX. Для этого используйте следующий код вместо приведенного выше:
```{r summary, echo = FALSE, results = "asis"}
texreg(lm.D9, star.symbol = "\\*", center = FALSE, caption = "")
```
Наконец, позвольте мне отметить, что вы можете создавать документы Word, используя обходной путь. Должна быть возможность создать HTML-документ, а затем открыть или импортировать его в MS Word. По крайней мере, можно сохранить вывод htmlreg
в файл и открыть его в Word, поэтому я предполагаю, что то же самое должно выполняться для более длинного HTML-документа, созданного с помощью knitr
.
person
Philip Leifeld
schedule
08.05.2016