R Memento Mori [better] Jun 2026

R Memento Mori: Death, Data, and the Art of Impermanence in Statistical Computing Introduction: An Unusual Pairing At first glance, the programming language R and the ancient Latin phrase "Memento Mori" (remember you must die) seem to have nothing in common. R is a tool for life: used in biostatistics to save patients, in ecology to model species survival, and in finance to predict market growth. "Memento Mori" is a meditation on death, decay, and the limited nature of existence. But within the R community—especially among data artists, philosophers of science, and senior data scientists—the term "r memento mori" has emerged as a powerful niche concept. It refers to using R’s analytical and graphical capabilities to confront, visualize, and internalize mortality. This article explores how R functions, packages, and coding philosophies can serve as modern vanitas —reminders that every data point represents a finite moment, every model is provisional, and every analysis should honor impermanence. Part 1: The Philosophical Backbone – Why R Needs a Memento Mori The Illusion of Permanence in Data Data scientists are often guilty of treating datasets as eternal. We build tidy tibbles, save RDS files, and assume our scripts will run forever. But data decays: hard drives fail, software versions change, and the subjects of our data (patients, customers, animals) eventually cease to exist. The r memento mori mindset injects humility into the workflow. The Four Tenets of Memento Mori in R

All outputs are temporary – No plot, table, or model lasts forever. Every observation had a life – Even log entries represent real moments of living beings. Uncertainty is not a bug – p-values, confidence intervals, and Bayesian posteriors are mathematical echoes of mortality. Code, too, will die – Abandoned scripts, deprecated functions, and obsolete packages are the digital graveyards of analysis.

Part 2: Visualizing Mortality – R Code as Vanitas Art The most direct interpretation of "r memento mori" is creating death-themed visualizations. Below is a practical guide using base R and ggplot2 to turn mortality data into meditative art. Example 1: Life Expectancy as a Survival Curve Using the survival package and ggplot2 , we can plot a Kaplan-Meier curve that doesn't just show probability—but forces reflection. library(survival) library(ggplot2) library(dplyr) Simulate age-at-death data set.seed(1492) data <- data.frame( age = c(rnorm(500, 75, 15), rnorm(100, 85, 10)), status = 1 # death occurred ) fit <- survfit(Surv(age, status) ~ 1, data = data) ggsurv <- ggsurvplot(fit, data = data, xlab = "Age (years)", ylab = "Proportion alive", title = "Memento Mori: You Are Here →", palette = "grey40", conf.int = TRUE, risk.table = TRUE) print(ggsurv)

This simple plot becomes a r memento mori artifact: the downward slope is not abstract—it includes you. Example 2: Skull Plots and Candle Charts Inspired by 17th-century vanitas paintings (skulls, candles, hourglasses), R users can create custom ggplot2 themes with mortality motifs. library(ggplot2) library(ggimage) Skull image plot df <- data.frame(x = 1:10, y = runif(10, 0, 100)) ggplot(df, aes(x, y)) + geom_image(aes(image = "skull.png"), size = 0.05) + # use any skull icon labs(caption = "Mors Vincit Omnia (Death conquers all)") + theme_void() + theme(plot.caption = element_text(family = "mono", face = "italic", size = 12)) r memento mori

Such visualizations are not morbid for misery’s sake—they are functional reminders during long data sessions to pause, breathe, and remember what matters. Part 3: The memento Package – A Hypothetical R Toolkit Although no official CRAN package named memento exists as of 2025, the r memento mori concept has inspired several community-driven functions. Let's design what such a package might include: | Function | Purpose | |----------|---------| | remind_me() | Prints a random death-related quote (Seneca, Marcus Aurelius, etc.) at random intervals during script execution. | | vanitas_theme() | A ggplot2 theme with sepia background, cracked borders, and optional skull watermark. | | lifeline() | Takes a date-of-birth and returns a visual timeline showing approximate position in a 80-year lifespan. | | decay_plot() | Randomly removes 10% of data points each time you view a plot—simulating memory loss and entropy. | | epitaph() | Reads your R script and writes a mock epitaph (e.g., "Here lies a script that died from a missing comma, beloved by none, forgotten by all"). | This gamified mortality layer adds emotional intelligence to routine analysis. Part 4: Case Study – The Mortality Dataset of London, 1665 To demonstrate a serious application of r memento mori , let's analyze the Bills of Mortality from the Great Plague of London. This dataset—available via the histdata package—records weekly deaths from multiple causes. library(histdata) data("london_plague") london_plague %>% filter(year == 1665) %>% ggplot(aes(x = week, y = plague_deaths)) + geom_line(color = "black", size = 1.2) + geom_point(shape = 8, size = 2, color = "darkred") + labs( title = "Each dot is a person. Each line is a funeral.", subtitle = "Great Plague of London, 1665", caption = "Memento Mori: 68,596 died. Their data remain." ) + theme_minimal() + theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Running this code creates a powerful emotional reaction—not because the statistics are unusual, but because the graph calls you to remember . That is the essence of r memento mori . Part 5: Memento Mori for R Workflows – Practical Ethics Beyond visualization, the r memento mori keyword has grown to represent a coding ethic: 1. Annotate as if you are dying tomorrow Write comments that future strangers (or your future self) will understand. Death of context is the real end of an analysis. 2. Use tryCatch() to embrace failure Errors are not enemies—they are reminders of fragility. Implement graceful degradation: result <- tryCatch({ risky_function(data) }, error = function(e) { message("Memento Mori: This operation failed, as all things do. Returning NA.") return(NA) })

3. Schedule script obituaries Place a comment at the top of every long script with an "obituary date" – when this script will likely become obsolete. # Script obituary: This analysis will be irrelevant after 2027-01-01. # Cause of death: New tax laws or my own negligence. R Memento Mori: Death, Data, and the Art

Part 6: Community and Hashtags – The Rise of #rMementoMori On Twitter and Mastodon, the hashtag #rMementoMori has quietly grown among R users who blend stoicism with statistics. Posts include:

Screenshots of lattice plots with skull watermarks. Gantt charts showing personal remaining weekends (assuming 80 years lifespan). shiny apps that count down your keystrokes until heat death of the universe.

One popular meme within the community is the "Memento Mori Barplot" – a standard geom_bar() where the x-axis labels are names of loved ones, and the y-axis is "estimated remaining conversations." It is equal parts data exercise and existential prompt. Part 7: Criticisms and Counterarguments Not everyone welcomes r memento mori . Critics argue: But within the R community—especially among data artists,

"It's performative nihilism disguised as depth." – Fair point. Without action, visual reminders of death become aesthetic kitsch. "R is for solving problems, not meditating." – But problem-solving without perspective leads to burnout. "Death is not a variable." – Yet every survival model, every Kaplan-Meier curve, every hazard ratio proves otherwise.

The compassionate response: r memento mori is not mandatory. It is an optional lens, like Bayesian priors or functional programming. Use it if it helps you produce more thoughtful, humble, and human-centered data work. Conclusion: Code Like You Will Die The keyword "r memento mori" is more than a niche search term—it is a quiet revolution in how we relate to data. In a field obsessed with prediction, accuracy, and permanence, R offers us a strange gift: the ability to face finitude with clarity and creativity. So the next time you type library(tidyverse) , pause. Remember that every row in your data once drew breath. Every plot will someday be deleted. Every model will be replaced. Run this final script before you close R today: cat(" You are here. This code is temporary. You are mortal. Now analyze accordingly. ")