The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

DOEpro

R-CMD-check DOI Licence: GPL-3 Launch app

Try it now — no installation: https://doepro.pages.dev

A free, open, single-file R Shiny application for the analysis of designed agricultural experiments. It brings the standard analyses used in field and horticultural research — ANOVA for the common designs, mean comparisons, data transformations and clear reporting — together in one accessible interface, and serves as a free, self-contained option for the kind of analysis researchers carry out in tools such as OPSTAT.

Paste your data straight out of Excel, choose the design, press Run analysis. You get the ANOVA, publication-format tables of means with SE(m)±, SE(d), C.D. (P≤0.05) and C.V. at the foot, automatic advice on data transformation, post-hoc comparisons, plots, a plain-English interpretation, and a report you can download as HTML or PDF.

Developed by

  1. Dr. Immad A. Shah — Scientist (Statistics), Division of Agricultural Statistics, SKUAST-Kashmir. ORCID 0000-0003-2761-5112 · immad11w@skuastkashmir.ac.in
  2. Mr. Uzair Javid Khan (maintainer) — UG Research Student, Statistics, AAAMDC Bemina, Cluster University Srinagar. ORCID 0009-0001-6368-0977 · uzairkhan11w@gmail.com
  3. Dr. M. Iqbal Jeelani — Scientist (Statistics), Division of Agricultural Statistics, SKUAST-Kashmir. ORCID 0000-0002-2974-2871

Suggestions and feedback are welcome — write to the maintainer (uzairkhan11w@gmail.com) or open an issue in the repository.


Installation

install.packages(c("shiny", "DT", "ggplot2"))   # that is the whole dependency list
install.packages("pagedown")                    # optional: server-side PDF export

Running

shiny::runApp("app.R")

Or open app.R in RStudio and press Run App.


What is new in v2.0


Layout of the tables of means

One factor, several parameters — one row per treatment, one column per measured character, each cell mean ± SE with the grouping letter as a superscript:

TREATMENT Yield Plant height Fruits per plant
T1 42.30 ± 1.26 ᶜ 78.4 ± 2.1 ᵇ 31.2 ± 1.4 ᵇ
T2 47.10 ± 1.26 ᵃ 84.9 ± 2.1 ᵃ 38.7 ± 1.4 ᵃ
SE(m) ± 1.26 2.1 1.4
SE(d) ± 1.78 2.97 1.98
C.D. (P≤0.05) Treatment 3.81 6.34 NS
C.V. (%) 7.60 5.31 9.02

Two factors — the familiar grid with marginal means, and the three critical differences spelled out underneath:

Factor 1  Factor 2 I1 I2 I3 Mean
T1 30.70 ᵈ 36.12 ᶜ 41.06 ᵇ 35.96
T2 36.56 ᶜ 38.92 ᵇᶜ 46.62 ᵃ 40.70
Mean 33.63 37.52 43.84 38.33

SE(m) ± 0.86 / 0.70 / 1.22 SE(d) ± 1.22 / 0.99 / 1.72 C.D. (P≤0.05) Factor 1: 2.71 Factor 2: 2.21 Factor 1 × Factor 2: NS C.V. (%) 5.49

C.D. is printed only when the F-test for that source is significant; otherwise the cell reads NS. When a response has been transformed, each cell shows the back-transformed mean with the transformed value in parentheses, and SE, C.D. and C.V. refer to the transformed scale — because that is the scale on which the tests were done.


Designs supported

Design Columns needed Error term(s)
Completely randomised (CRD) treatment, response(s) single pooled error
Randomised complete block (RCBD) block, treatment, response(s) single pooled error
Latin square (LSD) row, column, treatment, response(s) single pooled error
Factorial CRD (2–4 factors) factors A–D, response(s) single pooled error
Factorial RCBD (2–4 factors) block, factors A–D, response(s) single pooled error
Split plot replication, main plot, sub plot, response(s) Error(a), Error(b)
Strip plot replication, factor A, factor B, response(s) Error(a), Error(b), Error(c)
Pooled analysis over environments (RCBD base) environment, replication, treatment, response(s) R(env), pooled error
Pooled analysis over environments (CRD base) environment, treatment, response(s) pooled error
Pooled factorial over environments (RCBD base, 2-4 factors) environment, replication, factors A-D, response(s) each effect vs its environment interaction; pooled error
Pooled factorial over environments (CRD base, 2-4 factors) environment, factors A-D, response(s) each effect vs its environment interaction; pooled error

Data go in long format: one row per plot, one column per variable.

A split plot needs four different SE(d), and the app prints all four:

A strip plot needs three error strata and the analogous mixed comparisons. The cell-means table therefore carries two letter columns — one for each legitimate comparison.


Transformation adviser

Signature Suggestion
proportion in [0, 1], non-integer arcsine √p
integer counts, Taylor slope b ≈ 1 √y, or √(y + 0.5) with zeros
named as a percentage and bounded 0–100 arcsine √(y/100)
b ≈ 2 log y, or log(y + 1) with zeros
b > 2.5 1/y
otherwise Box-Cox λ

A 0–100 range on its own is not treated as evidence of percentage data — most yields and plant heights live there too. The adviser uses the column name and the mean–variance signature, and you can override it with the Nature of the response selector.

When the diagnostics are satisfied but the data are plainly counts or percentages, the app still names the conventional transformation and marks it optional, leaving the default at None. It tells you what convention expects; it does not transform behind your back.


Post-hoc tests

Fisher’s protected LSD, Bonferroni-adjusted LSD, Tukey’s HSD, Duncan’s DMRT, Student–Newman–Keuls, and Scheffé. Each is computed from the error mean square and degrees of freedom of the effect you select, so in a split or strip plot they automatically use the right error stratum. Duncan and SNK report the full table of critical ranges Rₚ.


Report

Download report (HTML) always works. Download report (PDF) appears when the machine has a rendering engine — pagedown (needs Chrome or Chromium), weasyprint, or wkhtmltopdf. On a hosted server without one, download the HTML and print to PDF from the browser; the page footer carries the credit line either way.

Every page of the PDF carries, in the bottom-right corner:

DOEpro · Shah, Khan & Jeelani · SKUAST-Kashmir — page n


What was verified

Executed under R 4.3.3 on generated data for all seven designs, with two response variables each. Checked by hand or against a reference implementation:

Not executed in the build environment: the Shiny UI layer, the ggplot2 plots, and a real PDF render. Those are desk-checked. If something misbehaves on first run, that is where to look.


Caveats

How to cite

If DOEpro contributes to work you publish, please cite it:

Shah, I. A., Khan, U. J. and Jeelani, M. I. (2026). DOEpro: analysis of designed agricultural experiments. Version 2.0.0. Zenodo. doi:10.5281/zenodo.21399570

@software{doepro2026,
  author  = {Shah, Immad A. and Khan, Uzair Javid and Jeelani, M. Iqbal},
  title   = {DOEpro: Analysis of Designed Agricultural Experiments},
  year    = {2026},
  version = {2.0.0},
  doi     = {10.5281/zenodo.21399570},
  url     = {https://github.com/Uzairkhan11w/DOEpro}
}

The DOI above is the concept DOI: it always resolves to the most recent release. GitHub’s Cite this repository button reads CITATION.cff and produces the same reference.

Licence

GPL-3. See CITATION.cff and DEPLOYMENT.md for citation, DOI and publishing.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.