
Dintr -o perspectivă pur de proiectare, ieșirea PowerPoint standard a Quarto este scurtă. Este limitat la șapte opțiuni de aspect, cel mai complex fiind „două conținuturi”. {officer} Pachetul R oferă o alternativă puternică pentru cei care caută un control complet și personalizare.
De ce PowerPoint?
La locul de muncă, folosesc un sistem de operare Linux (OS), iar acasă, folosesc macOS. În mica mea bulă, este ușor să uiți cât de mult din cota de piață deține în continuare Microsoft. Se estimează că aproximativ 70% din cota de piață a sistemului de operare desktop aparține Microsoft. Mulți dintre clienții cu care lucrez preferă ieșirile Microsoft, cum ar fi PowerPoint, peste HTML sau PDF. În afară de alinierea companiei cu Microsoft, există câteva motive practice pentru care utilizarea PowerPoint cu Quarto poate fi avantajoasă:
- Nu este nevoie să fii un Whizz-Kid-Kiz CSS / Latex pentru a produce diapozitive cu aspect profesional
- Posibil (și ușor) de editare după Redarea documentului!
Ce este {ofițer}?
De la Davidgohel.github.io/officer
Pachetul de ofițeri permite utilizatorilor R să manipuleze documentele Word (.docx) și PowerPoint (*.pptx). Pe scurt, se poate adăuga imagini, tabele și text în documente de la R. Un document inițial poate fi furnizat; Conținutul, stilurile și proprietățile documentului original vor fi apoi disponibile.
Acest lucru înseamnă pentru acest flux de lucru, quarto este cu totul marcat și ne concentrăm în totalitate pe scripturile R și codarea R.
Cum?
Există câteva moduri de a folosi {ofițer} – voi parcurge abordarea pe care am găsit -o cea mai eficientă.
Șabloane de aspect
În primul rând – veți avea nevoie de o prezentare PowerPoint care conține diapozitive de aspect al șablonului. Nu există limite la aceste diapozitive, formatul poate fi la fel de personalizat pe cât doriți și pot exista tot atâtea machete doriți. Amintiți -vă – acest fișier nu are nevoie de diapozitive reale, are nevoie doar de machete! Pentru a crea un aspect:
- Introduceți modul „Slide Master”
- Adăugați orice conținut (anteturi, subsoluri, stil etc.) pe care doriți să le apăreați pe fiecare diapozitiv la „Slide Master”
- Creați un nou diapozitiv de aspect


Pentru a insera conținut din R, cel mai simplu mod este prin intermediul localității. Acestea pot fi text, tabele, imagini și multe altele. Pentru a adăuga un loc de loc:
- Faceți clic pe „Introduceți Placeholder” și alegeți tipul de conținut
- Dacă este un text de text, puteți personaliza formatarea textului
Puteți vedea mai jos că am adăugat câteva stiluri de bază ale râului de sărituri la mine și am adăugat două locații; Un loc de text pentru un titlu și un loc de imagine pentru un complot.


Pentru a accesa cu ușurință aceste deținători de la R, este mai bine să le redenumiți:
- Fila Acasă
- Faceți clic pe derularea „Selectați”
- Faceți clic pe „Panoul de selecție”
- Selectați -vă deținătorul și redenumiți


Aici mi -am numit Placa de imagine „Plot”și lotul meu de text pentru titlul de diapozitive, „titlu”. Rețineți că este, de asemenea, o idee bună să vă numiți aspectul – doar faceți clic dreapta și apăsați redenumirea. În această demonstrație tocmai am lăsat -o ca „Slide de titlu”.
Codul R.
Acum că mi -am configurat șablonul, restul este în R. În primul rând, încărcăm {ofițer} și citim documentul PowerPoint într -un obiect R.
library("officer")
doc = read_pptx("mytemplate.pptx")
Dacă ați uitat numele de aspect / loc, accesați -le
layout_summary() şi layout_properties()
layout_summary(doc) layout_properties(doc, layout = "Title Slide", master = "Office Theme")


Înainte de adăugarea oricărui conținut, este necesar conținut! Să folosim pachetul {Palmerpenguins} pentru a crea un complot simplu de date „Adelie” Pinguini
library("palmerpenguins")
library("dplyr")
library("ggplot2")
adelie_plot = penguins |>
filter(species == "Adelie") |>
ggplot(aes(x = bill_length_mm, y = flipper_length_mm)) +
geom_point() +
theme_linedraw() +
theme(
# Make the background transparent
plot.background = element_rect(fill = "transparent", colour = NA),
# Match the panel colour to the slide
panel.background = element_rect(fill = "#F1EADE", colour = NA)) +
labs(
x = "Bill Length (mm)",
y = "Flipper Length (mm)")
Pot adăuga diapozitive goale în document folosind add_slide() funcţie. Aici aleg pur și simplu un aspect din al meu .pptx fișier de utilizat.
doc = add_slide(doc, layout = "Jumping Rivers", master = "Office Theme") doc
Apoi, folosind funcția ph_with (), pot insera obiecte R în locurile mele de pe nume pe nume
doc = ph_with(
doc,
value = "Adelie",
location = ph_location_label("title")
)
# Add the plot
doc = ph_with(
doc,
value = adelie_plot,
location = ph_location_label("myplot")
)
Pentru a crea PowerPoint, utilizați print()
print(doc, "penguins.pptx")


Și acolo îl avem! Am folosit doar două deținători de loc pentru a menține exemplul simplu, dar în realitate nu există nicio limită.
Buclă
Este ușor să folosiți programarea atunci când utilizați codul pur R pentru a genera PowerPoints. De exemplu, ne -am putea lipi codul într -o buclă pentru
# Read in doc again
# this resets the doc object to the original file
doc = read_pptx("mytemplate.pptx")
for (penguin_species in c("Adelie", "Chinstrap", "Gentoo")) {
doc = add_slide(doc, layout = "Title Slide", master = "Office Theme")
# Add the title using the iterator value
doc = ph_with(
doc,
value = penguin_species,
location = ph_location_label("title")
)
# Create the plot using the iterator value
penguin_plot = penguins |>
filter(species == penguin_species) |>
ggplot(aes(x = bill_length_mm, y = flipper_length_mm)) +
geom_point() +
theme_linedraw()
theme(
plot.background = element_rect(fill = "transparent", colour = NA),
panel.background = element_rect(fill = "#F1EADE", colour = NA)) +
labs(
x = "Bill Length (mm)",
y = "Flipper Length (mm)")
# Add the plot
doc = ph_with(
doc,
value = adelie_plot,
location = ph_location_label("plot")
)
}
# Output to a file
print(doc, "penguins_loop.pptx")


Concluzie
Există câteva dezavantaje ale acestei metode:
- Este destul de enervant să introduceți cantități mari de text folosind doar un script R
- Conținutul adăugat la diapozitivul „Slide Master” nu poate fi mutat sau editat în fișierul de ieșire
- Versiunea web a PowerPoint nu are caracteristicile funcționalității Slide Master
Cu toate acestea, cred că avantajele depășesc contra:
Pentru actualizări și revizii la acest articol, consultați postarea originală
