In Step 1, you learned how to design stunning presentation slides with Quarto. What’s your impression of the Revealjs presentation? Describe its capabilities as you learned from the presentations. What are its strengths and weaknesses compared with PPT?
After watching the Step 1 lecture, my impression of Revealjs is that it offers a modern and flexible approach to building presentations, especially for work that involves data and analysis. What stood out to me is how Revealjs allows you to create slides directly from a Quarto document, which keeps everything—writing, formatting, code, and visuals—in one place. Instead of switching between tools or copying screenshots into PowerPoint, Revealjs lets you generate a full presentation from the same source file that contains your analysis. This makes the workflow more efficient and reproducible.
The lecture also demonstrated how Revealjs supports features such as slide transitions, incremental bullet points, embedded images, and even live code or outputs. These capabilities make the presentation feel more dynamic and interactive. I also liked how simple it is to structure slides using Markdown headings, which keeps the focus on content rather than design. Compared with PowerPoint, Revealjs is much stronger for technical presentations because it integrates naturally with R and Quarto. However, PowerPoint is still more intuitive for quick, non‑technical presentations and for audiences who prefer a familiar format. Overall, Revealjs feels like a powerful tool for presenting analytical work because it keeps the presentation closely connected to the underlying code and data.
2Step 2: Revealjs Presentation Reflection
In Step 2, you were asked to create a Revealjs presentation. Provide a link to the presentation you published on the web. Add at least one reproducible chart or table in the presentation. Briefly describe what the presentation is about. What did you learn from the experience of the Revealjs presentation?
The presentation includes a reproducible bar chart created with ggplot2 that visualizes the sample characteristics of three audience segments for Rising Stars Muay Thai. The chart is generated directly from an R code chunk, ensuring that the visualization updates automatically if the underlying data changes.
ggplot(sample_data, aes(x =segment, y =count))+geom_col(fill ="firebrick")+labs( title ="Sample Size by Audience Segment", x ="Segment", y ="Count")
::: callout-note
2.3What the Presentation Is About
The presentation introduces my MSDM Culminating Experience Project focused on Rising Stars Muay Thai, a Sacramento‑based Muay Thai promotion. It outlines the organization’s current strengths, the gaps in its digital infrastructure, and the goals of the analytics project. The slides walk through the introduction, literature review, methods, and sample characteristics, setting the foundation for a data‑driven marketing strategy.
:::
2.4What I Learned from the Revealjs Experience
Working with Revealjs taught me how powerful it is to build presentations directly from code. I learned how to structure slides using Markdown, how slide separators work, and how to embed reproducible tables and charts that render automatically. I also realized how sensitive Revealjs is to formatting—especially YAML indentation, heading levels, and the difference between Visual and Source mode in RStudio. Overall, the experience helped me understand how to create dynamic, reproducible presentations that stay connected to the underlying data and analysis.
3Step 3 – Advanced Data Wrangling Functions
My advanced wrangling lecture in Step 3 introduced new concepts, including joining relational databases. Pick three different functions, each from a different category. Describe when to use them and give one coding example along with an output for each function. To clarify, you are expected to do literate programming to weave your narratives with the code.
3.11. filter() – Selecting Rows Based on Conditions
The filter() function is used when I want to keep only the rows that meet specific criteria. It is especially helpful when narrowing a dataset to a meaningful subset before further analysis. For example, if I want to focus on cars with high fuel efficiency in the mtcars dataset, I can filter based on the mpg variable.
The mutate() function is used when I need to add new variables or transform existing ones. It is useful for creating calculated fields that support deeper analysis. For example, I can create a new variable that converts weight from thousands of pounds (wt) into actual pounds.
The left_join() function is used when I want to merge two datasets while keeping all rows from the left table. This is especially useful when working with relational data, where information is stored across multiple tables. In the example below, I join a small table of car categories to the main mtcars dataset.
cars<-tibble( model =rownames(mtcars), mpg =mtcars$mpg)categories<-tibble( model =c("Mazda RX4", "Datsun 710"), type =c("Sport", "Compact"))cars_joined<-cars|>left_join(categories, by ="model")cars_joined