使用R和Latex自动化Powerpoint报告

时间:2011-10-20 15:38:32

标签: r latex powerpoint sweave

我有一个经常使用的报告模板。分析在R中完成,但目前这是我的工作流程:

  1. 使用R运行分析并将结果导出到csv文件
  2. 使用excel宏读入数据,操作图表/创建表格
  3. 再次使用excel,将图表/表“自动化”为Powerpoint
  4. 我接触到的Latex,R和Reproducible Research越多,我觉得应该有一种方法留在R中并将我的结果发送给Powerpoint。我知道有R2PPT包,但我想考虑所有选项。我不认为发送我的图表的图片会是一个问题,更重要的是表格创作让我感到难过。

    您将提供的任何帮助将不胜感激!不幸的是,我需要继续使用PPT。

6 个答案:

答案 0 :(得分:1)

你能从R自动化PowerPoint吗?即,启动它,访问对象模型等?

如果是这样,您应该能够直接在PPT中创建表格。

答案 1 :(得分:1)

这是一个解决方案,条件是您可以在通常使用powerpoint的位置显示PDF。

您将需要:

1)LateX 2)R 3)Beamer乳胶包装。

其中唯一可能需要搜索的是Beamer。然后,您可以打开一个新的乳胶文档,给它文档类型beamer,然后像写一篇文章一样写下latex和R.将代码发送给R,获取结果,排版结果,然后就完成了。自从我了解了Beamer以来,我没有回到Powerpoint。

我发现你需要留在Powerpoint中,所以这个建议可能没用。话虽这么说,Beamer输出到PDF,我给了很多演示文稿,其他人都使用powerpoint并且从未遇到过问题

答案 2 :(得分:0)

看一下sweave和odfSweave。您可以使用sweave将R报告生成为pdf,然后复制/粘贴到powerpoint中,或使用odfweave将报告生成为LibreOffice odt文件,然后将其打开并从LibreOffice复制/粘贴到powerpoint中。

答案 3 :(得分:0)

也许R2PPT是最好的解决方案。我开始探索的另一个选项是创建一个Visual Basic脚本(.vbs),它打开Powerpoint,插入幻灯片并插入由R生成的EMF。

答案 4 :(得分:0)

ReporteRs包旨在完成此工作流程。如果您的输出可能是pdf或html,请务必考虑knitrslidify,但不支持.pptx。但这是使用ReporteRs的示例:

library('ReporteRs')

# set default font size to 24
options( "ReporteRs-fontsize" = 24 )

doc = pptx( )

# add a slide with layout "Title Slide"
doc = addSlide( doc, slide.layout = "Title Slide" )
#set the main title
doc = addTitle( doc, "Presentation About Cars" ) 

# add a slide with layout "Title and Content" then add content
doc = addSlide( doc, slide.layout = "Title and Content" )
doc = addTitle( doc, "Cars dataset", level = 1 )
data(mtcars)

library('ggplot2')
car_plot <- ggplot(mtcars, aes(x=hp, y=mpg, col=cyl)) + 
              geom_point() + geom_smooth() + 
              xlab('Horsepower (Hp)') + ylab('Miles per Gallon (MpG')


doc = addPlot( doc = doc, fun=print, x = car_plot )

doc = addSlide( doc, slide.layout = "Title and Content" )
doc = addTitle( doc, "More about cars dataset", level = 1 )
doc = addParagraph(doc, paste("The correlation between Hp and MpG is",
                              round(with(mtcars, cor(hp, mpg)),3))
                   )

writeDoc( doc, file = "presentation_about_cars.pptx" )

答案 5 :(得分:0)

看看我的新导出软件包,它刚好来自CRAN,它允许将图形和统计表从R导出到Powerpoint和Word。 参见https://cran.r-project.org/web/packages/export/index.htmlhttps://github.com/tomwenseleers/export

例如:

install.packages("export")
library(export)

## export of ggplot2 plot
library(ggplot2)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, 
      size = Petal.Width, alpha = I(0.7))
# export to Powerpoint      
graph2ppt(file="ggplot2_plot.pptx", width=7, height=6) 
# export to Word
graph2doc(file="ggplot2_plot.docx", width=7, height=6)

## export of aov Anova output as table
fit=aov(yield ~ block + N * P + K, npk)
x=summary(fit)
# export to Powerpoint
table2ppt(x=x,file="table_aov.pptx")
table2ppt(x=x,file="table_aov.pptx",digits=4,append=TRUE)
table2ppt(x=x,file="table_aov.pptx",digits=4,digitspvals=1,
          font="Times New Roman",pointsize=16,append=TRUE)
# export to Word
table2doc(x=x)
# export to Excel
table2excel(x=x, file = "table_aov.xlsx",digits=4,digitspvals=1,
            sheetName = "Anova_table", add.rownames = TRUE)
# export to Latex
table2tex(x=x)