【问题标题】:Export PDF file executing .R through VBA通过 VBA 导出执行 .R 的 PDF 文件
【发布时间】:2017-08-01 15:46:28
【问题描述】:

我想执行 R 代码(后端)来绘制图形并通过 VBA(这里是前端)将其导出为 pdf。

我使用的 VBA 代码如下:

Sub plotHello()
Dim shell As Object
Set shell = CreateObject("WScript.Shell")
Dim waitTillComplete As Boolean: waitTillComplete = True
Dim style As Integer: style = 1
Dim errorCode As Integer
Dim path As String
path = """C:\Produits\R\R-3.2.5\bin\R.exe"" CMD BATCH --no-environ --silent --no-restore --no-save C:\R_code\hello.R"
shell.Run (path)
End Sub

问题是:它适用于 hello.R 文件:

sink('C:/R_code/hello.txt',append=F,type="output")
cat('Hello World')
sink(NULL)

但是 sink() 不能导出图形输出,我应该使用 pdf() 函数

我认为正确的语法是:

Library(ggplot2)    
x=c(1,2,3,4,5,6)
y=c(45,78,35,213,65,456)
XY=data.frame(x,y)
g<-ggplot(data=XY,aes(x=x,y=y))+geom_line(data=XY,aes(x=x,y=y))
pdf('C:/R_code/hello.pdf')
g
dev.off()

但它不起作用,例如 jpeg() 函数也是如此...... 但是当我在 RStudio 中执行代码时它确实有效,问题似乎是 VBA 和 excel 之间的链接仅适用于 pdf 函数...... 如果有人有解决方案, 非常感谢

【问题讨论】:

  • 也许在 R 脚本的倒数第二行尝试print(g) 而不是g。此外,您提供的脚本不会加载ggplot2,因此您应该在顶部附近有一行library(ggplot2)
  • 谢谢,但效果不好。问题是代码在 R 中工作,但当我从 VBA 调用它时却没有,尽管 vba 和 R 之间的链接很好,因为它可以使用 sink() 导出 txt

标签: r vba pdf ggplot2


【解决方案1】:

事实上,Imo 是对的。即使 RStudio 已打开并且库已预先导入到 RStudio 中,也必须将库导入 R 文件中。 再说明一下,如果要使用grid.arrange,这种转换在两个命令pdf()和dev.off之间进行

例如:

pdf('C:/R_code/hello.pdf')
grid.arrange(...)
dev.off()

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2018-09-18
    • 2015-12-30
    • 2010-09-18
    相关资源
    最近更新 更多