hermes

Write an R analysis script

Writes a reproducible R (tidyverse) analysis script for a described dataset and question, with import, checks, analysis, plots and saved outputs. Use when you need an analysis others can re-run.

context

You are an R developer and applied statistician who writes analysis scripts that a colleague can run a year later and get the same answer. That means explicit column types on import, checks that fail loudly when the data is not what the script expects, one clear path from raw data to results, plots that stand on their own, outputs written to files, and comments that explain why rather than what.

task

Write an R script that answers this question:

question

using this data:

data description

Structure the script in these sections, each starting with a comment banner:

  1. Header comment: purpose, the question, input file, outputs, required packages, and the R version it was written for (4.1 or later, for the native pipe).
  2. Setup: library() calls for the packages used (tidyverse, plus only what the analysis needs, such as broom, janitor, lubridate or a modelling package), a fixed seed if anything is random, and a config block with the input path, the output folder, and any thresholds or parameters as named variables.
  3. Import: readr::read_csv (or the right reader for the format) with explicit col_types and na values matching the data description; janitor::clean_names if headers are messy.
  4. Checks: stopifnot or explicit if-stop checks for expected columns, row count above zero, key uniqueness, allowed values of categorical columns, value ranges, and a printed summary of missing values per column. Each check has a message that says what went wrong.
  5. Preparation: filtering, type fixes, derived variables and joins, each with a comment on why, and a row count printed after every step that can drop or duplicate rows.
  6. Analysis: the method that answers the question (descriptive summaries, group comparisons, a test, or a model), chosen for the data and stated in a comment, with tidy output through broom where models are used, and an assumption check where the method has assumptions that matter.
  7. Plots: ggplot2 charts that answer the question, with a title that states the takeaway, labelled axes with units, a caption with the data source, a colour-blind-friendly palette, and ggsave to the output folder at a stated size.
  8. Outputs: write result tables to CSV in the output folder, and end with sessionInfo() so the environment is recorded.
constraints
  • Use the column names exactly as described. If a needed column is missing or ambiguous, put a clearly marked placeholder in the config block and list it under Assumptions; never invent columns silently.
  • Use relative paths (or the here package); never setwd() or rm(list = ls()), and never install packages inside the script; list them for the user to install once.
  • Keep it runnable from top to bottom with Rscript, without interactive steps.
  • Prefer clear tidyverse code over clever code; add a comment wherever a choice affects the answer (exclusions, outlier handling, model terms).
  • Do not show results or claim what the script will output; it has not been run. Describe what to check when it runs.
output format

Assumptions

Bullets: column readings, choices made, placeholders to fill.

Script

One fenced r code block containing the whole script.

How to run

The packages to install once, the folder layout, and the Rscript command.

What to check

Four to six bullets: which printed checks and outputs to look at, and what would mean the analysis needs revisiting.

2 required values still a placeholder; the assistant will ask for them.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Data analysis
category
Statistics
level
Intermediate
made for
Data analyst, Data scientist, Researcher / scientist, Student
risk
read-only
version
v1.0.0 · incubating
reviewed
2026-10-03
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install write-r-analysis-script --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill write-r-analysis-script -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the data-analysis plugin
claude plugin install hodios-data-analysis@hodios

The plugin brings every entry in this domain at once.

pairs well with

All of Statistics
PromptStatistics

Choose a statistical test

Picks the right statistical test for a research question and data shape, explains its assumptions and how to check them, and gives code to run it. Use before testing a difference or relationship.

choose-statistical-test
PromptData visualisation

Write plotting code

Writes publication-quality plotting code from data and intent, with labelled axes, accessible colours and an annotation on the key point. Use for matplotlib, seaborn, plotly, ggplot2 or Vega-Lite.

write-plotting-code
PromptData exploration

Write a dataframe transformation

Writes pandas or polars code for a described transformation with built-in checks on row counts, nulls, key uniqueness and join cardinality. Use when reshaping, joining or aggregating data.

write-dataframe-transformation
PersonaStatistics

Consulting statistician

Consulting statistician who asks how the data were produced before analysing them, chooses methods that fit the question, checks assumptions and refuses to over-claim. Use for any data analysis.

statistician
PromptStatistics

Analyse A/B test results

Analyses A/B test results with a sample-ratio-mismatch check, effect sizes, confidence intervals and guardrail metrics, ending in a ship, iterate or stop call. Use when an experiment ends.

analyze-ab-test-results
PromptStatistics

Calculate sample size

Computes the sample size or statistical power for an experiment or survey, shows the formula and assumptions, and gives a sensitivity table. Use before launching an A/B test, study or survey.

calculate-sample-size