【R】不使用EXPORT包,导出图片到PPT

最近EXPORT包从CRAN下架了。虽然还是可以下载到旧版本进行本地安装。但是在实际出图的时候很可能报错:

Error: 'ph_with_vg_at' is defunct.
Use 'officer::ph_with' instead.
See help("Defunct")

原因是EXPORT的依赖包RVG在更新后,把函数ph_with_vg_at给去掉了。想要继续使用,方法有:

  1. 将RVG包降级
  2. 修改EXPORT包中相应的函数

这两种方法的教程网上都已经有大神给出了。这里给出第三种方法

使用officer包和rvg包导出图片到PPT

EXPORT包其实是使用了officer包和rvg包来实现图片导出到ppt的,既然如此,那么直接使用这两个包也能实现相同功能,具体代码如下:

###########################################################
##
##                 ggplot导出到PPT
##     ---------------------------------------------
##                Cdudu    2020.5.21
##
##########################################################

library(rvg)
library(officer)
library(magrittr)
library(ggplot2)

#本代码只适用于ggplot出的图,base出图需要修改代码

#首先用ggplot画一张图,这部分就不在这里展示了。将图片保存在变量p中

#将p转换成矢量图
p1 <- dml(ggobj = p)

#导出到PPT
doc <- read_pptx() %>%
   add_slide(layout = "Title and Content", master = "Office Theme") %>%
   ph_with(value = p1, location = ph_location("body", left = 1, top = 1, width = 5, height = 5)) %>%
   print(target = "example.pptx")

代码其实非常简单,当然这段代码只适用于ggplot2画的图。如果使用baseR画图,则需要将dml()中的参数进行修改。此外,这段代码只能实现EXPORT中图片导出到PPT的功能,EXPORT的其他功能,例如导出到word,就无能为力啦。

你可能感兴趣的:(【R】不使用EXPORT包,导出图片到PPT)