首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Rmarkdown中的多个pdf上运行不同的图形

在Rmarkdown中的多个pdf上运行不同的图形
EN

Stack Overflow用户
提问于 2019-10-02 13:56:19
回答 1查看 29关注 0票数 1

我想产生多个图形,并将它们保存在多个pdf文件基础上。基于某个类别,这些图表是不同的。使用此代码,它可以在生成1个pdf文件时工作

代码语言:javascript
运行
AI代码解释
复制
---
output: pdf_document
---

```{r setup, include=FALSE}  

I <- "30-40“

套餐

库(Tidyverse)

库(Knitr)

库(Rmarkdown)

库(Tinytex)

库(Readxl)

库(data.table)

库(Lubridate)

创建随机数据

ID <- sample(seq(from = 1,to = 20,by = 1),100,replace = TRUE)

Date <- sample(seq(ymd("2019-01-01"),today(),by="day"),100,replace =TRUE

年龄<-样本(c(“20”,"20-30","30-40","40-50","50-60","60-70","70+"),

代码语言:javascript
运行
AI代码解释
复制
                    size = 100, 
代码语言:javascript
运行
AI代码解释
复制
                    replace = TRUE, 
代码语言:javascript
运行
AI代码解释
复制
                    prob=c(0.05, 0.1, 0.075, 0.15, 0.2, 0.175, 0.25))

Duration_call <-样本(序号(from= 30,to = 600,by = 5),100,replace = TRUE)

问题<-示例(c(“Question1”,"Question2","Question3","Question4"),100,replace = TRUE)

sample_data <- tibble(ID,日期,年龄,Duration_call,问题)

代码语言:javascript
运行
AI代码解释
复制
```{r}

KPI_3 <- sample_data %>%

代码语言:javascript
运行
AI代码解释
复制
   filter(Age == i) %>%
代码语言:javascript
运行
AI代码解释
复制
   mutate(Maand = lubridate::day(Date)) %>%
代码语言:javascript
运行
AI代码解释
复制
   group_by(Maand, Question) %>%
代码语言:javascript
运行
AI代码解释
复制
   summarize(Aantal_calls = n()) %>%
代码语言:javascript
运行
AI代码解释
复制
   ggplot(aes(Maand, Aantal_calls, group = Question, color = Question)) +
代码语言:javascript
运行
AI代码解释
复制
   geom_line()
代码语言:javascript
运行
复制

但是,如果我使用这个脚本来遍历不同的类别(从而产生不同的pdf文件),它将无法工作。注意:在使用摘要统计信息(并将其缩进到rmd文件中)时,可以使用完全相同的代码。

代码语言:javascript
运行
AI代码解释
复制
## Packages
library(tidyverse)
library(knitr)
library(rmarkdown)
library(tinytex)
library(readxl)
library(data.table)


# Create random data 
ID            <- sample(seq(from = 1, to = 20, by = 1),  100, replace = TRUE)
Date          <- sample(seq(ymd("2019-01-01"), today(), by="day"), 100, replace = TRUE)
Age           <- sample(c("20", "20-30", "30-40", "40-50", "50-60", "60-70", "70+"), 
                        size = 100, 
                        replace = TRUE, 
                        prob=c(0.05, 0.1, 0.075, 0.15, 0.2, 0.175, 0.25))
Duration_call <- sample(seq(from = 30, to = 600, by = 5),  100, replace = TRUE) 
Question      <- sample(c("Question1", "Question2", "Question3", "Question4"), 100, replace = TRUE)


sample_data <- tibble(ID, Date, Age, Duration_call, Question)



# For loop
for (i in unique(sample_data$Age)) {

  print(i)

  rmarkdown::render(input = "Child_script_1.Rmd", # must match RMD 
                    output_format = "pdf_document",
                    output_file = paste("Age", i, ".pdf", sep=''), 
                    output_dir = "MAP")
}

有人有什么建议吗?任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2019-10-02 14:25:27

如果我理解正确的话,您需要在您的markdown YAML文档中设置参数:

在本例中,它采用从输出创建的生成的图像(例如图形

代码语言:javascript
运行
AI代码解释
复制
---
title: "Title"
mainfont: Arial
output:
    pdf_document:
      latex_engine: xelatex
      fig_caption: false
      fig_height: 4
geometry: margin=.5in
params:
    images_params: !r list.files(path = "./images/", pattern = "\\.jpg$", full.names = TRUE)
    data: mtcars
---

在Markdown中,指定图像所在的位置

代码语言:javascript
运行
AI代码解释
复制
knitr::include_graphics(params$images_params) #calls on the param

并让另一个脚本运行它:

代码语言:javascript
运行
AI代码解释
复制
plotting_function <- function(df) {


  split_df <- split(df, df$Question)

  names <- names(split_df)

  plots <- map2(split_df, names, 
                ~ggplot(.x, aes(x = Age,
                                y = Duration_call)) +
                          geom_point()

  )

}

reports <- plotting_function(sample_data)


reports %>% pwalk(rmarkdown::render, 
                  input = "./path/Report.Rmd",
                  "pdf_document", envir = new.env())

这将创建一个新的pdf,并在您指定的位置插入图像。

我写了一些关于这个过程的here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58203042

复制
相关文章
【WebGL】一次drawcall中绘制多个不同纹理的图形
Demo: http://kenkozheng.github.io/WebGL/multi-texture-in-one-drawcall/index.html
用户1258909
2020/07/27
1.8K0
利用Debian上的X-Forwarding在Linode上运行图形界面软件
有时你或许需要在Linode上运行带有图形界面的软件,利用X-Forewarding可以非常容易地完成这项任务。
2018/09/11
3.1K0
利用Debian上的X-Forwarding在Linode上运行图形界面软件
java中==、equals的不同AND在js中==、===的不同
       1.==操作符:首先,对于非基本数据类型的对象比较,相同内存中存储的变量的值是否相等,注意是相同内存地址的才可,并且数值相同(当然地址相同,值也一定相同)才会返回true.     但是,对于基本数据类型的比较(比如:int flot double等),值相同,"=="比较便会返回true.(这是编译的规则,当进行基本数据类型的比较时,会编译生成if_icmpne指令不会进行比较地址。而进行对象比较时,会生成if_icmpne指令,会比较地址。生成的指令都是不同的)。
洋仔聊编程
2019/01/15
4.1K0
群晖NAS上安装虚拟机教程在同一设备上运行多个不同的操作系统和应用程序
想要在同一设备上运行多个不同的操作系统和应用程序,实现更高效的资源利用吗?本文为您提供详细的群晖NAS虚拟机安装教程,包括硬件要求确认、下载Virtual Machine Manager、创建虚拟交换机、创建虚拟机、配置虚拟机网络和启动虚拟机等6个步骤。通过本文,您可以轻松掌握在群晖NAS上安装虚拟机的方法,以及使用Virtual Machine Manager进行虚拟机管理和网络设置的技巧。
哈德森
2023/04/07
12.5K0
在Apache服务器上同时运行多个Django程序的方法
由于腾讯云服务器特别便宜(120元/年),禁不住诱惑买了两年。然后前前后后搭建了几个网站,分别是一个科技新闻抓取网站 https://news.stackoverflow.club, 一个书籍分享网站 https://book.stackoverflow.club, 一个网站内容开源api(还没有做前端界面) https://api.stackoverflow.club, 一个机器学习的数据集论坛 https://data.stackoverflow.club.
羽翰尘
2019/11/21
3.7K0
iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果
  在公司做项目一直使用Storyboard,虽然有时会遇到团队合作的Storyboard冲突问题,但是对于Storyboard开发效率之高还是比较划算的。在之前的博客中也提到过,团队合作使用Storyboard时,避免冲突有效的解决方法是负责UI开发的同事最好每人维护一个Storyboard, 公用的组件使用轻量级的xib或者纯代码来实现。这样不但提高了开发效率,而且可以有效的避免Storyboard的冲突。如果每个人维护一个Storyboard, 遇到冲突了就以你自己的为准就OK了。   言归正传,接下
lizelu
2018/01/11
2.4K0
iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果
9.1K Star大厂开源在Windows上无缝运行Linux图形应用的利器
开源日记
2023/09/08
7270
9.1K Star大厂开源在Windows上无缝运行Linux图形应用的利器
R:如何使用RMarkdown渲染中文pdf报告
Rmarkdown作为一种将R等编程语言和Markdown的简洁语法结合在一起的增强版Markdown语法,其在报告输出、数据分析、沟通交流中的易用性和便利性已得到了足够的体现。
生信菜鸟团
2020/09/04
4.5K0
Neo4j中的图形算法:15种不同的图形算法及其功能
只有你拥有使用图形分析的技巧,并且图形分析能快速提供你需要的见解时,它才具有价值。因而最好的图形算法易于使用,快速执行,并且产生有权威的结果。
杜逸先
2018/06/04
12.9K0
Neo4j中的图形算法:15种不同的图形算法及其功能
rmarkdown的使用
rmarkdown的使用:代码里加两句message=F,warning=F然后在R markdown下面摁ctrl+alt+i最后引用写在下面三个~~~的下面:>空格加内容如引用自生信技能树最后点击毛线球knit键knitr::knit("note-3.Rmd")注意:###是三级标题,#是一级标题。 写在白底的地方,不要写在~~~{r}下面>引自生信技能树也是写在白底的地方
素素
2023/02/09
3560
在一台Apache服务器上创建多个站点(不同域名)
使用不同的域名来区分不同的网站,所有的域名解析都指向同一个 IP 地址。Apache通过在HTTP头中附带的 host参数来判断用户需要访问哪一个网站。
星哥玩云
2022/07/14
3.4K0
如何在 Mac 上使用 pyenv 运行多个版本的 Python
即使对于有经验的开发人员,管理本地 Python 开发环境仍然是一个挑战。尽管有详细的软件包管理策略,但仍需要采取另外的步骤来确保你在需要时运行所需的 Python 版本。
用户8639654
2021/09/18
5.3K0
在TPU上运行PyTorch的技巧总结
Google定制的打机器学习专用晶片称之为TPU(Tensor Processing Unit),Google在其自家称,由于TPU专为机器学习所运行,得以较传统CPU、 GPU降低精度,在计算所需的电晶体数量上,自然可以减少,也因此,可从电晶体中挤出更多效能,每秒执行更复杂、强大的机器学习模组,并加速模组的运用,使得使用者更快得到答案,Google最早是计划用FPGA的,但是财大气粗,考虑到自己的特殊应用,就招了很多牛人来做专用芯片TPU。
deephub
2020/11/02
2.8K0
在TPU上运行PyTorch的技巧总结
​nuttx在riscv的qemu上运行体验
继阿里推出阿里OS,华为推出鸿蒙OS,腾讯的TencentOS tiny之后,小米也高调的推出Xiaomi Vela。各大互联网公司都在做自己的物联网操作系统,物联网操作系统已呈现百花齐放百家争鸣的态势。这篇文章主要讲Nuttx的使用。
bigmagic
2021/01/08
3K0
如何在多个 Linux 服务器上运行多个命令
如果你正在管理多台 Linux 服务器,并且你想在所有 Linux 服务器上运行多个命令,但你不知道该怎么做。不用担心,在这个简单的服务器管理指南[1]中,我们将向您展示如何在多个 Linux 服务器上同时运行多个命令。
数据科学工厂
2023/08/10
3750
如何在多个 Linux 服务器上运行多个命令
在Windows上运行单节点的Cassandra
Cassandra可以安裝在很多系统上, 我是安装在windows server 2008 R2上,安装相当简单,只要把下载下来的压缩包解压缩放到一个目录下就可以了,这里主要是记录下使用体验: Cassandra官网: http://cassandra.apache.org/,下载页面 http://cassandra.apache.org/download/ Cassandra用java开发的,要求安装JVM 1.6以上,推荐 Version 6 Update 23  到Java官网下载 http://w
张善友
2018/01/19
2.4K0
在Windows上运行单节点的Cassandra
小技巧:通过 New-Ailas 指令在 Powershell 上启动多个不同版本的应用程序
如果你像我一样,电脑上安装有多个 Java 的话,你肯定会遇到这样的烦恼:当我们试图在命令行中调用其他非 classpath 上的 java.exe 时,需要费尽心思找到这些 Java 的路径,以全路径执行,这十分费时费力。但是如果你正在使用 Powershell 的话,现在这些问题就可以得到解决了,解决的方法就是 New-Ailas 指令
HikariLan贺兰星辰
2022/10/27
1.1K0
openstack nova-compute在不同的hypervisors上使用不同的存储后端
实验环境 主机名 IP controller1 192.168.2.240 compute1 192.168.2.242 compute2 192.168.2.243 compute3 192.168
tanmx
2018/07/17
2.3K0
在QEMU上运行OPTEE
TEE越来越成为一种基础的安全技术,optee作为一种优秀的开源TEE OS正吸引了越来越多的厂商,越来越多的学习者,安智客之前也多次介绍过
安智客
2018/07/30
2.6K0
在QEMU上运行OPTEE
在 Azure Functions 上使用不同的路由前缀
有时需要使用与 Azure Functions 自动生成的路由前缀不同的路由前缀。
Edi Wang
2021/12/20
1.1K0
在 Azure Functions 上使用不同的路由前缀

相似问题

rmarkdown PDF中的HTML图形太小

10

在rmarkdown pdf_book输出中为单个图形添加多个标题

129

在PDF输出中更改Rmarkdown中图形标题的字体和颜色

134

从Rmarkdown到PDF编织时的图形错误

113

在Rmarkdown文档中生成的多个图形(R)

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文