【发布时间】:2020-03-31 14:57:15
【问题描述】:
我知道有人问过类似的问题。但是,正如您将在我的代码中看到的那样,我已经尝试了所有这些解决方案,但它们都没有奏效。最奇怪的是,我的代码已经正常工作了几个月,直到本周才停止工作。以下代码位于 RMD 文件中,并在使用 R Studio 上的 knit 按钮时完全按照我的需要生成表格:
---
title: "Cars"
author: "xxx"
date: '`r format(Sys.Date(), "%B-%d-%Y")`'
always_allow_html: yes
output: pdf_document
classoption: portrait
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{makecell}
- \usepackage{xcolor}
---
```{r}
library(kableExtra)
library(dplyr)
data <- cars
Portfolio <- c(4,7)
data%>%
mutate(
speed = cell_spec(speed, background= ifelse(speed %in% Portfolio, "yellow", "white"))
) %>%
kable(escape = F, longtable= T) %>%
kable_styling("striped", full_width = F, latex_options = "repeat_header")
```
表格如下所示:
它也继续到下一页。
我需要多次生成此报告,因此我有一个单独的 R 文件,我在其中将先前代码的呈现循环到单独的 PDF 文件中。
# load packages
library(knitr)
library(rmarkdown)
library(kableExtra)
library(dplyr)
Portfolio <- c( 4,7)
# for each bond in the portfolio create a report
# these reports are saved in output_dir with the name specified by output_file
for (i in 1:length(Portfolio)){
Bond <- Portfolio[i]
rmarkdown::render("Table.Rmd" ,
output_format = "pdf_document",
output_file = paste(Bond, ".pdf", sep=''),
output_dir = paste('Reports_',format(Sys.Date(), "%b-%d-%y")),
envir = new.env(
Bond <- Portfolio[i]
))
}
此代码呈现 PDF,我的报告中的所有内容看起来都相同,但 kableExtra 表除外。下面是这张桌子现在的样子:
这是我第一次提出关于 SO 的问题。我将不胜感激任何帮助让我的代码工作以及关于如何在未来更好地格式化我的问题的建议。
【问题讨论】:
标签: r dplyr r-markdown knitr kableextra