← Back to all sparks
P

procs

ANALYTICS
Velocity0.0

Recreates Some 'SAS®' Procedures in 'R'

An R package rebuilding SAS procedures one PROC at a time, now filling in their options.

statisticssas-migrationr-packageclinical-reportingvalidation
Current state
procs reimplements SAS statistical procedures — FREQ, MEANS, TTEST, REG, SORT, TRANSPOSE — as R functions returning both datasets and report-ready output, as part of the r-sassy suite. The catalogue of procedures is largely assembled; recent releases concentrate on the parameters each one accepts rather than on adding new procedures. Validation documentation is maintained alongside the code, consistent with the regulated environments the suite targets.
Where it's heading
The work has shifted from breadth to fidelity: where earlier releases introduced whole procedures, recent ones add the options a SAS user expects to find on them, most visibly the where parameter spread across five functions at once and plotting support across three. Statistical output is being widened too, with AIC and adjusted Chi-Square appearing. The remaining gap is per-procedure option coverage rather than missing procedures.
Prediction
Expect continued option-level parity work on the existing procedures, with new statistics added to their output tables, rather than a new proc_* function.

Recent moves

  1. 2mo ago

    proc_ttest() gains sides, freq and weight parameters

    Adds a sides option for one- versus two-tailed tests, plus freq and weight parameters, to proc_ttest(), with plot fixes alongside. Small in surface area but squarely on the parity track — these are the options a SAS user would expect PROC TTEST to have. Continues the pattern of deepening existing procedures rather than adding new ones.

    View source ↗
  2. 4mo ago

    A where parameter arrives across five procedures

    The broadest parity release in this window: where lands on proc_freq(), proc_means(), proc_ttest(), proc_reg() and proc_sort() simultaneously, with plots on three procedures, an order parameter, AIC in proc_reg(), and weight, vardef and na.sort options elsewhere. Adding a SAS idiom uniformly across the catalogue rather than to one function at a time is what makes the emulation credible.

    View source ↗
  3. 8mo ago

    Adjusted Chi-Square added, altering the proc_freq() table

    Adds adjusted Chi-Square to proc_freq() output, which required altering the Chi-square table and may break code that accessed it programmatically. Skewness and kurtosis move to the sasLM package with identical output, default titles arrive on two procedures, and a by-variable bug in proc_reg() is fixed. The table restructuring is the part worth flagging for anyone parsing these outputs downstream.

    View source ↗
  4. 2y ago

    proc_reg() added for regression

    Introduces proc_reg(), extending the catalogue into regression, and adds a parameter check for zero-row input across all functions. This belongs to the earlier phase of the package's history, when releases added whole procedures rather than options on existing ones. Later releases would spend their effort filling in this function's parameters.

    View source ↗
  5. 2y ago

    Ordered-factor handling fixed across three procedures

    Fixes ordered factors used as a class in proc_means(), on the by parameter in proc_transpose(), and with the missing option in proc_freq(). A cluster of the same underlying factor-handling problem surfacing in three places. No interface change.

    View source ↗
  6. 2y ago

    proc_ttest() added, plus factor casting on proc_sort()

    Adds proc_ttest() to the catalogue along with an as.character parameter on proc_sort(), explicitly framed as the counterpart to the as.factor parameter in the sibling fmtr package. The cross-package pairing is a reminder that these procedures are designed against the rest of the r-sassy suite rather than in isolation.

    View source ↗