#r #latex #powerpoint #sweave
#r #Латекс #powerpoint #sweave
Вопрос:
У меня есть шаблон отчета, который я использую довольно часто. Анализ завершен в R, но на данный момент вот мой рабочий процесс:
- Используйте R для выполнения анализа и экспорта результатов в файлы CSV
- Используйте макросы Excel для чтения данных, управления диаграммами / создания таблиц
- Снова используя 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)