Используйте R и Latex для автоматизации отчетов Powerpoint

#r #latex #powerpoint #sweave

#r #Латекс #powerpoint #sweave

Вопрос:

У меня есть шаблон отчета, который я использую довольно часто. Анализ завершен в R, но на данный момент вот мой рабочий процесс:

  1. Используйте R для выполнения анализа и экспорта результатов в файлы CSV
  2. Используйте макросы Excel для чтения данных, управления диаграммами / создания таблиц
  3. Снова используя Excel, «автоматизируйте» диаграммы / таблицы в Powerpoint

Чем больше я знакомлюсь с Latex, R и Reproducible Research, я чувствую, что должен быть способ оставаться в рамках R и отправлять мои результаты в Powerpoint. Я знаю, что есть пакет R2PPT, но я пытаюсь продумать все варианты. Я не думаю, что отправка изображений моих графиков будет проблемой, меня больше смущает создание таблицы.

Мы будем признательны за любую помощь, которую вы можете оказать! К сожалению, да, мне нужно продолжать использовать PPT.

Комментарии:

1. Если PowerPoint может импортировать PDF-файлы, вы можете создать все свои таблицы с помощью Sweave и импортировать полученные PDF-файлы в PowerPoint.

2. PowerPoint не может импортировать PDF-файлы.

3. Отличная идея. Есть ли способ сделать это программно?

4. попробуйте www.pptxbuilder.com

5. Только что создал новый пакет export, который позволяет делать именно это — см. Мой ответ ниже!

Ответ №1:

Можете ли вы автоматизировать PowerPoint с помощью R? Т.Е. Запустите его, получите доступ к объектной модели и т. Д.?

Если это так, вы должны иметь возможность создавать таблицы непосредственно в PPT.

Комментарии:

1. Пакет R2PPT обеспечивает отличный первый шаг, но мысль заключается в том, что на самом деле может быть проще автоматизировать таблицу, подобную Latex, но я не уверен, как перенести эту таблицу в PPT.

2. Просто бегло взглянул на документ R2PPT PDF. Не похоже, что это не дает вам доступ к объектной модели, который вам понадобится для построения таблиц непосредственно в PPT. Это дает вам возможность добавлять слайды и добавлять изображения к слайду, поэтому, если вы можете преобразовать свою таблицу в изображение в формате, который может импортировать PPT, вы можете его изменить. Подойдут EMF, WMF, BMP, PNG, JPG и некоторые другие.

3. Спасибо! Можно ли создавать таблицы latex и сохранять их как один из файлов изображений, указанных выше?

4. Боюсь, понятия не имею. Я много делаю с PPT (вручную, программно), но не знаю Latex.

5. Стив, можете ли вы привести примеры того, как вы программно взаимодействуете с PPT?

Ответ №2:

Это решение зависит от того, сможете ли вы отображать PDF-файлы там, где вы обычно используете PowerPoint.

Вам понадобится:

1) LaTeX 2) R 3) Пакет Beamer latex.

Из них вам, возможно, придется искать только Beamer. Затем вы можете открыть новый документ latex, присвоить ему тип документа beamer, а затем написать latex и R, как для статьи. Отправьте код в R, получите результаты обратно, наберите результаты, и все готово. Я не возвращался к Powerpoint с тех пор, как узнал о Beamer.

Я вижу, что вам нужно оставаться в Powerpoint, поэтому этот совет, вероятно, бесполезен. При этом Beamer выводит данные в формате PDF, и я провел много презентаций, в которых все остальные использовали PowerPoint и никогда не сталкивались с проблемами

Комментарии:

1. Я думаю, что это идеальное решение. После того, как вы разместили данные в PowerPoint, вы не хотите, чтобы они редактировались. Кто готовит книги, верно? LaTeX — Beamer предоставляет вам отличный контроль и контент только для чтения.

Ответ №3:

Взгляните на sweave и odfSweave. Вы можете создавать отчеты R в формате PDF с помощью sweave, а затем копировать / вставлять в PowerPoint, или использовать odfweave для создания отчета в виде odt-файла LibreOffice, затем открыть его и скопировать / вставить в PowerPoint из LibreOffice.

Комментарии:

1. Хотя он указан как экспериментальный, вы можете попробовать использовать odfWeave для записи в файл odp и просто использовать Impress или, возможно, PowerPoint для преобразования файла в формат ppt.

2. Спасибо за ответ. В идеале все должно быть автоматизировано программно; никакого ручного вмешательства. Я работал с sweave, и я думаю, что это фантастика, но на выходе должна быть колода PPT. R2PPT — это пакет, который в какой-то степени облегчает это, я в тупике, как создать таблицу, подобную latex, в PPT. Изображение было бы хорошо, если это возможно.

3. Есть несколько пакетов, которые предлагают графический вывод для таблиц. grid.table() gridExtra Некоторые примеры см. В пакете .

Ответ №4:

Возможно R2PPT , это лучшее решение. Другой вариант, который я начинаю изучать, — это создание скрипта Visual Basic (.vbs), который открывает Powerpoint, вставляет слайды и вставляет EMFS, созданные R.

Ответ №5:

ReporteRs Пакет предназначен для выполнения именно этого рабочего процесса. Если ваш вывод может быть в формате PDF или html, обязательно рассмотрите knitr или slidify , которые не поддерживаются .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" )
  

Ответ №6:

Взгляните на мой новый пакет экспорта, который только что вышел в CRAN и который позволяет экспортировать графики и статистические таблицы из R в Powerpoint и Word. См. https://cran.r-project.org/web/packages/export/index.html и https://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)