Извиняюсь за плохое название, я не был уверен, как лучше всего передать мою проблему.
Чтобы дать некоторый контекст, я хочу создать персональную систему показателей для каждого поставщика в нашей организации, используя Rmarkdown. Я уже разобрался, как создать индивидуальный PDF для каждого провайдера; Тем не менее, я хочу иметь простую гистограмму в каждом отчете с выделенной позицией провайдера, чтобы они могли сравнивать себя со своими сверстниками. Ниже приведено то, что у меня есть:
Сначала я создал набор данных:
############################## Create dataset and export #####################################
df = data.frame(
"Provider" = c("A","B","C","D"),
"Measure" = c(1.2,0.8,1.7,0.4)
)
write.csv(df, "pathway/df.csv")
Затем я создал файл Rmarkdown с именем "TEST", который вызывает набор данных и включает в себя график * 1008. *
###################### Create Rmarkdown file named "TEST" ####################################
---
output: pdf_document
---
```{r echo=FALSE}
df <- read.csv("pathway/df.csv", stringsAsFactors = FALSE)
name <- df$Provider[i]
Dear `r name`,
This is your personalized scorecard.
```{r}
ggplot() +
geom_bar(data=df, aes(x=reorder(Provider, -Measure), y=Measure,
fill = factor(ifelse(Provider == "A", "You","Your Peers"))),
stat = "identity") +
scale_fill_manual(name = "Provider", values=c("steelblue","lightgrey"))
Наконец, я создал R-файл с for-l oop, чтобы создать столько PDF-файлов, сколько имеется провайдеров
################ Run R file with loop to make separate PDFs per Provider #####################
library(knitr)
library(rmarkdown)
#Read data
df <- read.csv("pathway/df.csv", stringsAsFactors = FALSE)
#Create loop
for (i in 1:nrow(df)){
rmarkdown::render(input = "pathway/TEST.Rmd",
output_format = "pdf_document",
output_file = paste("handout_", i, ".pdf", sep=''),
output_dir = "pathway/folder/")
}
В коде выше для графа ggplot2, который я кодировал вручную провайдер «А» будет выделен синим цветом, а остальные провайдеры - серым, но у нас более 30 провайдеров, и я не хочу вручную кодировать каждого из них. Если у Rmarkdown есть какой-то способ автоматически выделять каждого провайдера синим, а остальные серым цветом для каждого из их отчетов в формате PDF, это было бы замечательно. Любая помощь очень ценится!