r - 如何在 R 或 RMarkdown 中向每个单独导出的 PDF 报告添加文本?

标签 r r-markdown

感谢您阅读这个问题。我有一个包含 5 个参与者/行和 8 个变量/列的数据集。我能够将数据集的每个参与者/行导出到一个单独的 pdf 文件中,并根据参与者名称命名导出的 pdf 文件(感谢 @Jilber Urbina)。我需要帮助解释如何在表格前添加文本(格式良好),文本应显示如下内容:“亲爱的客户,此报告提供了您在性能测试中的分数摘要”随附的是解释此问题的解释代码.

# Creating a dataset for explanation:
df <- data.frame(matrix(ncol = 8, nrow = 5))
x <- c("Participants", "V1","V2", "V3",  "V4","V5", "V6","V7")
colnames(df) <- x

df$Participants= c("Elizabeth",
                   "Emily",
                   "Cristie",
                   "Orville",
                   "Janetta")
df$V1 = runif(5, min=0, max=10)
df$V2 = runif(5, min=0, max=10)
df$V3 = runif(5, min=0, max=10)
df$V4 = runif(5, min=0, max=10)
df$V5 = runif(5, min=0, max=10)
df$V6 = runif(5, min=0, max=10)
df$V7 = runif(5, min=0, max=10)

summary(df)

# Printing each participant/row in individual report:

library(gridExtra)
apply(df, 1, function(x){
  pdf(paste0(x[1], ".pdf"), width=10)
  grid.table(data.frame(t(x)))
  dev.off()
})

如何向每个单独的报告添加文本/消息,以便客户可以阅读文本/消息并查看他们的绩效分数?非常感谢。

最佳答案

您可以渲染 rmarkdown 文档,而不是使用 pdf 设备。获取这个 R 脚本

# Creating a dataset for explanation:
df <- data.frame(matrix(ncol = 8, nrow = 5))
x <- c("Participants", "V1","V2", "V3",  "V4","V5", "V6","V7")
colnames(df) <- x

df$Participants <- c("Elizabeth", "Emily", "Cristie", "Orville","Janetta")
df$V1 = runif(5, min=0, max=10)
df$V2 = runif(5, min=0, max=10)
df$V3 = runif(5, min=0, max=10)
df$V4 = runif(5, min=0, max=10)
df$V5 = runif(5, min=0, max=10)
df$V6 = runif(5, min=0, max=10)
df$V7 = runif(5, min=0, max=10)

summary(df)

# Printing each participant/row in individual report:
apply(df, 1, function(x){
  print(x)
  fname <- paste0(x[1], ".pdf")
  rmarkdown::render(input="template.Rmd", 
                    output_file = fname,
                    output_format = "pdf_document",
                    params = list(id=x[1], data=x[-1]))
})

它使用不同的参数呈现 rmarkdown 文档template.Rmd。其内容为

---
output: pdf_document
params:
  id: NULL
  data: NULL
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Evaluation

Dear `r params$id`, This report provides a summary of your scores on the performance test.

```{r, echo=F}
knitr::kable(params$data)
```

您可以根据自己的喜好设置输出的样式。这个简单的模板为您提供

enter image description here

关于r - 如何在 R 或 RMarkdown 中向每个单独导出的 PDF 报告添加文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55934538/

相关文章:

r - Pyspark列填充与计算

r - Forcats 重新排序不适用于 ggplot

r - 在 Rmarkdown YAML 中使用 knit:pagedown::chrome_print 更改选项设置

r - Knit:不要取一大块金银丝

r - "%in%"命令与 r 中的常规子集

r - 添加多图轴

r - 如何根据因素在 R 中创建一个运行总计?

css - R rmarkdown ioslides - 如何包含 segue 幻灯片?

r - 在 Rmarkdown/knit 中隐藏 R 代码并仅显示结果

多个操作系统上的 RMarkdown utf-8 错误