Я пытаюсь автоматически скомпилировать несколько отдельных отчетов PDF из RMarkdown, используя для l oop в отдельном скрипте R. Кажется, есть проблема с использованием функции kable_styling()
из пакета kableExtra
при составлении нескольких отчетов, но не для одного отчета. Это рендер l oop в отдельном скрипте:
mtcars = data.frame(mtcars)
for (car in unique(rownames(mtcars))){
rmarkdown::render('mtcars_report.Rmd', # file 2
output_file = paste("report_", car, ".pdf"))
}
Вот заголовок YAML, используемый для всех отчетов:
title: "mtcars_report"
output:
pdf_document: default
html_document:
df_print: paged
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage[normalem]{ulem}
- \usepackage[utf8]{inputenc}
- \usepackage{makecell}
- \usepackage{xcolor}
geometry: margin=.8cm
Этот код RMD работает с этим l oop и отображает каждый PDF:
knitr::opts_chunk$set(echo = TRUE)
library(rmarkdown)
library(dplyr)
library(kableExtra)
mtcars = data.frame(mtcars)
cars = mtcars[rownames(mtcars)==car,]
{r, echo=FALSE, message=FALSE}
cars_table = cars %>%
select(mpg, cyl)%>%
t() %>%
kable("latex")
cars_table
При добавлении команды kable_styling файлы PDF не отображаются:
cars_table = cars %>%
select(mpg, cyl)%>%
t() %>%
kable("latex") %>%
kable_styling(latex_options=c("striped", "float_right", "hold_position"),full_width = FALSE)
cars_table
Я получаю эту ошибку:! Неопределенная последовательность управления. \ rowcolor
Если я вяжу RMD как один файл без l oop (то есть cars = mtcars[rownames(mtcars)=="Merc 280",]
, он РАБОТАЕТ с kable_styling
. Это просто кажется проблемой, когда я пытаюсь чтобы отобразить его с помощью l oop. Я обновил все пакеты, насколько мне известно, под управлением:
update.packages(ask = FALSE, checkBuilt = TRUE) # update R packages
tinytex::tlmgr_update() # update LaTeX packages