如何在R或R标记中向每个导出的PDF报表添加文本?

如何在R或R标记中向每个导出的PDF报表添加文本?,r,r-markdown,R,R Markdown,谢谢你阅读这个问题。我有一个数据集,包含五个参与者/行和8个变量/列。我能够在一个单独的pdf文件中导出数据集的每个参与者/行,并根据参与者名称命名导出的pdf文件(感谢@Jilber-Urbina)。我需要帮助解释如何在表格前添加文本(格式很好),文本应该是这样的:“亲爱的客户,这份报告提供了您在性能测试中的分数摘要”附件是解释这个问题的解释代码 # Creating a dataset for explanation: df <- data.frame(matrix(ncol = 8,

谢谢你阅读这个问题。我有一个数据集,包含五个参与者/行和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()
})
#创建用于解释的数据集:

df不使用pdf设备,您可以呈现rmarkdown文档。拿这个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::render
呈现A4 pdf报告?您必须创建一个简单的RMarkdown模板,然后可以使用YAML选项
params
输入单个数据。谢谢,Martin。我不知道如何将其添加到上面主要问题中提供的“apply”函数中。你能举个例子吗?再次感谢@martinschmelzer太棒了,非常感谢,@martinschmelzer。我感谢你的帮助
---
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)
```