Я написал файл Rmarkdown, который загружает некоторые данные и генерирует классную таблицу kableExtra с некоторыми символами и пользовательскими цветами и линиями, распечатывая ее в формате PDF.
Он прекрасно работает, когда я открываю файл Rmarkdown и вяжуи производит точный вывод, который я хочу.
Теперь я хотел бы использовать сценарий R, который перебирает некоторые различные подмножества данных, создавая новую таблицу (и отдельный выходной pdf) для каждого.Итак, мне нужно вызвать мой файл .Rmd из файла .R.
Однако, когда я делаю это (используя функцию rmarkdown::render
), я получаю ошибки, которые не возникают, когда связываются напрямую изв файле .Rmd.
Ниже приведен полностью функционирующий файл .Rmd, аналогичный тому, который я использую с моими реальными данными.Я вызываю его из второго R-скрипта со строкой rmarkdown::render("table_creator.Rmd", pdf_document(latex_engine = "xelatex"))
.
Первая ошибка, с которой я сталкиваюсь - Error: Functions that produce HTML output found in document targeting latex output.
.Я добавляю always_allow_html: yes
в заголовок файла .Rmd и пытаюсь снова.Непосредственная вязка файла .Rmd снова работает нормально.Вызов его из скрипта .R теперь приводит к ошибке: ! Undefined control sequence.
l.94 ...oup\fontsize{16}{18}\selectfont \textcolor
[HTML]{ffde71}{$\bullet$}\...
На данный момент я думаю, что рендеринг происходит с другими настройками, чем те, которые используются, когда я связываю файл .Rmd напрямую.Как будто он не разбирает полный заголовок из файла .Rmd, но я не уверен.Я в растерянности из-за того, как действовать в этой точке, и буду признателен за любую помощь.
---
title: ""
output:
pdf_document:
latex_engine: xelatex
header-includes:
- \usepackage[T1]{fontenc}
- \setmainfont{Helvetica}
- \DeclareTextCommand{\nobreakspace}{TU}{\leavevmode\nobreak\ }
---
```{r, echo=FALSE, message = FALSE, warning = FALSE}
# Packages
suppressMessages(library(kableExtra))
suppressMessages(library(dplyr))
table_info <- data.frame(Symbol = c("$\\bullet$", "$\\blacksquare$",
"$\\blacklozenge$", "x", "+", "$\\bullet$"),
Name = letters[1:6],
Results = sample(c("good", "bad"), 6, replace = TRUE),
FontSize = c(16, 10, 11, 16, 16, 18),
Color = c("#ffde71", "#0c0000", "#0c0000", "#0c0000",
"#0c0000", "#cb6f86"))
ktable <- table_info %>%
mutate(Symbol = cell_spec(Symbol, color = Color,
font_size = FontSize,
escape = FALSE,
format = "latex")) %>%
select(-Color, -FontSize) %>%
kable(escape = FALSE, align = c("l", "l", "l"),
booktabs = TRUE) %>%
row_spec(1:5, hline_after = TRUE) %>%
row_spec(1:6, color = "gray") %>%
column_spec(1, "1.5em")
```
```{r, echo=FALSE}
ktable
```
РЕДАКТИРОВАТЬ: Дополнительная контекстная информация Вывод sessionInfo ():
sessionInfo () R версия 3.4.3 (2017-11-30) Платформа: x86_64-apple-darwin17.3.0 (64-разрядная версия) Работает под: macOS High Sierra 10.13.1
Продукты Matrix: BLAS по умолчанию: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib LAPACK: /System/Library/Frameworks/Accelerate.framework/Versions/AF/vecLib.framework/Versions/A/libLAPACK.dylib
языковой стандарт: [1] en_US.UTF-8 / en_US.UTF-8 / en_US.UTF-8 / C / en_US.UTF-8 / en_US.UTF-8
прикрепленные базовые пакеты: [1] stats graphics grDevices использует наборы методов базы данных
другие прикрепленные пакеты: [1] bindrcpp_0.2 dplyr_0.7.4 kableExtra_0.9.0 rmarkdown_1.9
загружено через пространство имен (и не прикреплено): [1] Rcpp_0.12.15 rstudioapi_0.7 bindr_0.1 knitr_1.20 xml2_1.2.0
[6] magrittr_1.5 hms_0.4.2 rvest_0.3.2 munsell_0.4.3 viridisLite_0.3.0 [11] colorspace_1.3-2 R6_2.2.2 rlang_0.1.6 plyr_1.8.4 stringr_1.2.0
[16] httr_1.3.1 tools_3.4.3 htmltools_0.3yaml_2.1.18 assertthat_0.2.0 [21] rprojroot_1.3-2 digest_0.6.15 tibble_1.4.2 readr_1.1.1 glue_1.2.0
[26] оценивать_0.10.1 stringi_1.1.6 compiler_3.4.3 pillar_1.1.0 scale_0.5.0
[31] backports_1.1.2 pkgconfig_2.0.1