Statistical Software for Research
This sub-cluster covers the software researchers use to run the analyses described in the research-methods cluster: SPSS (menu-driven, widely taught, common in social science and health), R (free, open-source, the standard in biostatistics and increasingly elsewhere), Stata (strong in economics and epidemiology), SAS (entrenched in pharma and clinical trials), and the newer open-source GUI tools JASP and jamovi, which pair R's statistical engine with SPSS-style menus. Pages here are practical and comparative — which tool suits a given discipline or analysis, and how to move a specific procedure (e.g., a mixed model) from one package's syntax to another's.
Guides
For Loops in R: Syntax, break/next, and When to Use lapply
How for loops work in R, per the R reference: syntax, seq_along, break and next, why results must be stored, and when lapply, sapply or vapply fits better.
Averages in Google Sheets: AVERAGE, AVERAGEA and AVERAGEIF
Calculate averages in Google Sheets with AVERAGE, AVERAGEA, AVERAGEIF and AVERAGEIFS, with a worked example of how text cells change the mean.
RStudio on the Cloud: Posit Cloud vs RStudio Server for Research
How to run RStudio on the cloud for research: Posit Cloud vs RStudio Server, the steps to start a project, and the limits that decide whether it fits.
Summary Statistics in R: summary(), skimr and psych::describe()
Run summary statistics in R with summary(), skimr and psych::describe(): exact calls, how to read the output, missing values and by-group results.
transform() in R: Syntax, Examples and When Not to Use It
How the R transform() function adds and replaces data frame columns, with the manual’s examples and a table comparing within(), mutate() and $ assignment.
Random Forests in R: randomForest and ranger, Step by Step
Fit random forests in R with randomForest and ranger, read out-of-bag error and variable importance, and see where the two packages’ defaults differ.
AVERAGEIF Function in Excel: Syntax, Examples and AVERAGEIFS
How to use the AVERAGEIF function in Excel, how AVERAGEIFS differs, and what causes #DIV/0!, with examples you can recompute by hand.
AVERAGEIFS in Excel: Syntax, Multiple Criteria and Examples
How the AVERAGEIFS function in Excel averages a range on several conditions: syntax, a hand-checkable example, #DIV/0! causes and AVERAGEIF differences.
Coefficient of Variance in Excel: Formula, Steps and Pitfalls
Calculate the coefficient of variance in Excel with STDEV.S and AVERAGE, a worked example, the sample vs population choice, and troubleshooting.
Monte Carlo Forecasting in Excel: RAND, NORM.INV and FORECAST.LINEAR
Build a Monte Carlo forecast in Excel with FORECAST.LINEAR, RAND and NORM.INV, then read the 5th-95th percentile range from a worked example.
How to Add a Trendline in Google Sheets
Add a trendline in Google Sheets: Customize > Series > Trendline, which chart types support it, the six types, and why R squared needs a legend.
Random Number Generation in R: set.seed, rnorm, runif, sample
How to generate random numbers in R with runif, rnorm and sample, and make them reproducible with set.seed, RNGkind and the R 3.6.0 sampling change.
How to Calculate Range in Excel (MAX Minus MIN)
Calculate the range in Excel with MAX minus MIN, the AutoSum route, and the traps that make it return 0 or an error.
How to Make a Histogram in Google Sheets: Steps, Bucket Size and Reading It
Make a histogram in Google Sheets with Insert > Chart and the Histogram type, adjust bucket size, and report the figure so it can be reproduced.
DNA Sequencing: Methods, Accuracy, and Turnaround
What DNA sequencing is, how the methods differ, how accurate base calls are (Q scores) and how long a run really takes, with NHGRI-sourced history.
Clustering Analysis in R: kmeans() and hclust()
Clustering analysis in R with base stats functions: scale, dist, kmeans, hclust and cutree, with the defaults and traps that change the clusters.
How to Find a Slope in Excel: SLOPE, LINEST and Trendline
Find a slope in Excel with SLOPE, LINEST or a chart trendline, with a worked example, the intercept formula and fixes for #N/A and #DIV/0!.
How to Calculate CAGR in Excel (RRI and Formula)
Calculate compound annual growth rate in Excel with RRI or the caret formula, check both agree, and avoid the common period-count and averaging mistakes.
Barplot in R: barplot(), geom_bar(), geom_col()
How to make a barplot in R with barplot(), geom_bar() or geom_col(): choose by data shape, group and stack bars, read the output, and fix common problems.
How to Calculate the IQR in Excel (QUARTILE.INC vs EXC)
Calculate the IQR in Excel with =QUARTILE.INC(range,3)-QUARTILE.INC(range,1); see why QUARTILE.EXC gives a different answer, with worked examples.
How to Calculate SEM in Excel: Formula, Steps and Error Bars
How to calculate SEM in Excel with STDEV.S, COUNT and SQRT, a checkable worked example, and the menu path for custom mean ± SEM error bars.
How to Add Error Bars in Excel: Standard, Custom and Per-Point
Add error bars in Excel via Chart Elements, then use Custom with STDEV.S values so each bar shows exactly the statistic your figure legend states.
Collapse in R: collapse(), fct_collapse() and paste()
Collapse in R means four things: paste(collapse=), forcats::fct_collapse(), dplyr::collapse() and the collapse package. Syntax and examples from the docs.
Rename Columns in a Pandas DataFrame
Rename columns in a pandas DataFrame with rename, set_axis or add_prefix, plus the pandas 3.1 inplace deprecation and the errors=”raise” check.
How to Do a Pivot Table in Excel: Step by Step for Research Data
Build an Excel PivotTable from research data: source prep, Insert > PivotTable, Sum vs Count, grouping, refresh, and troubleshooting.
NumPy linspace: Syntax, Parameters and Examples
numpy linspace builds a fixed number of evenly spaced values. Learn num, endpoint, retstep and dtype, and when to use arange instead.
GitHub Tutorial for Beginners: A Researcher’s First Repository
A GitHub tutorial for beginners framed for researchers: first repository, branch, pull request, a GitHub Actions workflow, and a DOI via Zenodo.
How to Create Histograms in Excel
Step-by-step histograms in Excel: the built-in chart, bin width and overflow settings, the Analysis ToolPak and FREQUENCY, with a hand-checked example.
Excel Statistics Functions: Which to Use and When
Excel statistics functions grouped by research task, with the STDEV.S versus STDEV.P choice worked through and how text and blanks are treated.
ANOVA in Excel: One-Way ANOVA With the Data Analysis ToolPak
Run a one-way ANOVA in Excel with the Analysis ToolPak, check the p-value with F.DIST.RT, and add the post hoc and effect size it omits.
Excel Generate Random Number: RAND, RANDBETWEEN, RANDARRAY
How to generate random numbers in Excel with RAND, RANDBETWEEN and RANDARRAY, which Excel versions support each, and how to freeze the results.
How to Install GitHub CLI (gh) and Set Up SSH Keys
Install GitHub CLI on macOS, Windows or Linux, then run gh auth login to sign in and set up the SSH key GitHub needs, including headless token use.
How to Calculate Mode in Excel: MODE.SNGL, MODE.MULT and Ties
Calculate the mode in Excel with MODE.SNGL, list tied modes with MODE.MULT, and learn why a column with no repeated values returns #N/A.
LaTeX New Line in Equation: split, multline, align
How to add a new line in a LaTeX equation with split, multline, align and gather, and how equation numbering and labels work.
How Do You Make a Scatter Plot in Excel? Steps and Trendline
Step-by-step guide to making a scatter plot (scatter graph or scattergram) in Excel, with axis titles, a trendline and fixes for common mistakes.
How to Calculate the Median in Excel: MEDIAN Formula and Pitfalls
Use =MEDIAN(range) to find the median in Excel. See what it ignores and counts, and how AGGREGATE gives a median that skips errors or hidden rows.
End of Proof Symbol in LaTeX: qed and qedhere
Add, change or place the end-of-proof (QED) symbol in LaTeX with amsthm: qedsymbol, qed and qedhere, plus fixes for common placement problems.
ANOVA in SAS: PROC ANOVA vs PROC GLM, Step by Step
How to run ANOVA in SAS: SAS’s own rule for choosing PROC ANOVA or PROC GLM, a documented CLASS/MODEL example and how to read the output.
Crosstabs in Excel: Build a Cross-Tabulation With a PivotTable
How to build a crosstab in Excel with a PivotTable, fix Sum versus Count, and test the table with CHISQ.TEST using expected counts and the 5-per-cell rule.
MANOVA in R: manova(), summary() and Reading the Output
How to run and read a MANOVA in R with manova() and summary(), choose between Pillai, Wilks, Hotelling-Lawley and Roy, and check assumptions.
Normality Test in Excel: What Excel Can and Cannot Test
Excel has no built-in normality test. Use SKEW, KURT and a Q-Q plot built with NORM.S.INV as descriptive checks, then run Shapiro-Wilk in R or SciPy.
Outliers in R: Find, Flag and Remove Them (boxplot.stats, IQR, dplyr)
How to find and remove outliers in R with boxplot.stats(), IQR fences and dplyr, including the NA trap and when not to remove a point.
Crosstabs in R: table(), xtabs(), CrossTable() and tabyl()
How to make a crosstab in R four ways, with percentages, missing-value settings, an SPSS-style layout and a chi-square test on the result.
Power Analysis in R: pwr Package Functions and Worked Examples
Run power analysis in R with pwr and base R: a design-to-function table, worked sample size calls for t tests, ANOVA, correlation and chi-squared.
ANCOVA in R: lm(), car::Anova() and emmeans Step by Step
How to run ANCOVA in R with lm(), car::Anova() and emmeans: slope check, why term order matters, Type III contrasts and covariate-adjusted means.
How to Do a Random Sample in Excel: RAND, RANDBETWEEN and Sort
Draw a simple random sample in Excel with RAND and a sort, RANDBETWEEN or SORTBY, then freeze and record the selection so it can be reported.
Bonferroni Correction in R: p.adjust() and pairwise.t.test()
How to run a Bonferroni correction in R with p.adjust() and the pairwise test functions, read the adjusted p-values, and when to switch to Holm.
Bootstrap in R: boot() and boot.ci() Step by Step
How to run a bootstrap in R with boot() and boot.ci(), including studentized intervals, log-scale intervals and parallel runs on Windows.
Hypothesis Testing With R: t.test, chisq.test and wilcox.test
Hypothesis testing with R: which base function answers which question, the commands from the R manual, and how to read the htest result.
Interquartile Range in R: IQR(), the type Argument and na.rm
Calculate the interquartile range in R with IQR(): the na.rm and type arguments, matching SPSS or Minitab, and why fivenum() can differ.
sktest in Stata: Syntax, Output and swilk
How to run sktest in Stata, read its skewness and kurtosis output, and when to use swilk for the Shapiro-Wilk test instead.
ANOVA in Minitab: One-Way and Two-Way Step by Step
Run one-way and two-way ANOVA in Minitab: the exact menu paths, how to read p-values, R-sq and Tukey output, and free alternatives.
Dickey-Fuller Test in Stata: dfuller Syntax and Output
Run the Dickey-Fuller test in Stata with dfuller: syntax, the four noconstant/drift/trend cases, and how to read Z(t), critical values and the p-value.
How to Find the Median in Stata: summarize, tabstat, egen and centile
Four official ways to find the median in Stata: summarize detail, tabstat, egen median() and centile, with commands, stored results and fixes.
How to Calculate the Median in SPSS: Frequencies and Explore
Find the median in SPSS with Frequencies or Explore, get a median per group, and read the output. Steps follow IBM SPSS Statistics 29 documentation.
PCA in R: prcomp() Step by Step, Scaling, Loadings and Scores
Run PCA in R with prcomp(): scale, read sdev, rotation and x, plot a scree plot, and see how prcomp() differs from princomp().
ImageJ Leaf Area: Set Scale, Threshold and Analyze Particles
How to measure leaf area in ImageJ with Set Scale, threshold and Analyze Particles, plus length measurement, scale bars and reading the results.
How to Georeference an Image in QGIS (Georeferencer Step by Step)
Georeference an image in QGIS: open Layer > Georeferencer, add GCPs, pick a transformation and read the output, with GCP minimums per type.
How to Construct a Normal Distribution Curve in Excel
Build a normal distribution curve in Excel with NORM.DIST and a scatter chart, check it against Microsoft’s documented values, and fix common errors.
Heatmap in R: heatmap(), pheatmap and ggplot2
Make a heatmap in R with base heatmap(), pheatmap or ggplot2 geom_tile, including a correlation heatmap and the scaling and NA settings that change it.
Matrix in LaTeX: pmatrix, bmatrix and More
How to typeset a matrix in LaTeX with amsmath: pmatrix, bmatrix and the other environments, the 10-column limit, inline matrices and alignment.
Cluster Analysis in Python: K-Means, Hierarchical, DBSCAN
Cluster analysis in Python with scikit-learn and SciPy: a method table, runnable K-means, hierarchical and DBSCAN steps, and how to read the output.
What Is Minitab Used For? Research Uses, a Worked t Test and Free Alternatives
What Minitab is used for in research, with a worked 2-sample t test from the official docs, how to read the output and free alternatives.
What Is Google Colab Used For? Research Uses and Limits
Google Colab runs notebook code in a browser. See its research uses, setup steps, data-governance risks and the limits that decide when it fits.
What Is ArcGIS Used For? Research Uses and Setup
What ArcGIS is used for in research: mapping, spatial analytics, field data and imagery, plus ArcGIS Pro install steps, licensing and free alternatives.
Molecular Docking Software: Tools, Install and a Vina Walkthrough
Molecular docking software explained: what docking predicts, how to install AutoDock Vina, run it step by step and read the output.
Scatter Plot in Python: Matplotlib and Seaborn Step by Step
Draw a scatter plot in Python with Matplotlib or Seaborn: install, working code, parameter mapping, how to read the output and fixes.
Data Cleaning Steps for Research Data: A Practical Workflow
Data cleaning steps in order for research data: raw copy, text fixes, duplicates, missing values and a log, with OpenRefine, pandas and tidyr commands.
Scikit-learn Tutorial: Install, Fit, Evaluate and Cite for Research
A scikit-learn tutorial for researchers: install, fit a leakage-safe pipeline, cross-validate, make results reproducible and cite the library.
Free Statistical Software for Research: R, jamovi, JASP and gretl by Task
Free statistical software compared by task: R, jamovi, JASP and gretl, with install sources, stated licences and platforms from each official site.
What Is R Programming Used For? Research Uses and First Steps
R is a language for statistical computing and graphics. See research uses by field, a first task with real commands, and free alternatives.
Flow Cytometry Software: Opening FCS Files, Gating and Saving an Analysis
Flow cytometry software step by step: load FCS files, gate, save the workspace, and compare FlowJo, flowCore and a browser tool.
Scrivener Tutorial for Research Writers: Binder, Snapshots, Compile
A step-by-step Scrivener tutorial for researchers: structure a thesis in the Binder, take Snapshots, set Targets and compile to PDF or Word.
README Template for Research Code and Data
Which README template to use for research data or replication code, with copy-ready outlines merging Cornell and SSDE sections and GitHub display rules.
JASP Statistical Software: What It Is and How to Use It
What JASP statistical software is, what the name stands for, how to install it from the official site, and how to run and report a t-test in it.
AlphaFold Protein Structure Database: Access, Download and Confidence Scores
How to search the AlphaFold Protein Structure Database, download models by UniProt accession or API, and read pLDDT and PAE confidence scores.
How to Use QGIS Software: A Research Guide
A step-by-step guide to using QGIS for research: install, set the CRS, add layers, style and export a map, and run analysis tools.
NCBI RefSeq: What a Reference Sequence Is and How to Find and Cite One
Find the NCBI reference sequence for a gene, decode NM_ vs XM_ RefSeq accessions, and cite RefSeq correctly, using NCBI documentation.
renv: Lock R Package Versions for Reproducible Research
Use renv to lock R package versions: init, snapshot, restore, which files to commit, and how renv::status() diagnoses out-of-sync projects.
SciPy Stats: scipy.stats Functions for Research, With Examples
Which scipy.stats function fits which research question, with a tested normality check and t-test walkthrough and a guide to reading TtestResult.
What Is MATLAB Used For? Research Uses and First Steps
What MATLAB is used for in research, how to get it from MathWorks, a first readtable-and-plot task, and a free alternative, all from official documentation.
LaTeX Figure: Insert an Image, Caption It and Add Subfigures
Insert a figure in LaTeX with graphicx, caption and label it correctly, control float placement and add subfigures with subcaption.
Data Wrangling for Research: Tools and Steps
Data wrangling for research: clean text in OpenRefine, handle missing values in pandas, reshape to tidy data in tidyr.
NCBI BLAST Primers: How to Use Primer-BLAST
A step-by-step guide to NCBI Primer-BLAST: form fields, specificity checking, exon-exon junction primers, reading results and free alternatives.
ComBat Batch Correction: When to Apply It, and When It Erases Real Signal
What ComBat’s empirical Bayes correction actually adjusts, why it silently removes real biological signal when batch is confounded with your variable of interest, and how to check your design table and verify the correction with before/after PCA.
Volcano Plots in RNA-seq: How to Build and Correctly Read Differential Expression Results
What a volcano plot actually plots, why using raw p-values instead of FDR-adjusted p-values is a serious and common error, how to choose defensible fold-change and significance thresholds, and how to avoid the most common misreadings of the figure.
Epi Info: What It Was, Why CDC Sunset It, and What Replaces It
CDC discontinued Epi Info in September 2025. Here’s what the free epidemiology software did, what still works, and what public health researchers should migrate to.
Principal Component Analysis in Stata: pca and Postestimation
How to run principal component analysis in Stata: pca syntax, reading eigenvalues and loadings, screeplot retention rules, rotation with rotate, and saving component scores with predict.
Descriptive Statistics in Stata: summarize, tabstat, codebook
summarize gives a quick overview, tabstat builds custom grouped tables, and codebook screens data quality before you trust either one.
Correlation Matrices in Stata: correlate vs. pwcorr
Stata’s correlate and pwcorr both build a correlation matrix, but correlate uses listwise deletion and pwcorr uses pairwise deletion by default — here is how to choose, match the two, and export the result.
Creating Dummy Variables in Stata: i. Factor Notation vs. tabulate, generate()
Two ways to create dummy/indicator variables in Stata — the i. factor-variable operator vs. tabulate, generate() — and when each one is the right tool.
Poisson and Negative Binomial Regression in Stata
Fitting poisson and nbreg for count outcomes in Stata: using exposure() to model rates, testing for overdispersion, and reporting results as incidence-rate ratios.
Multiple Imputation in Stata: mi impute and mi estimate
How to set up mi data, choose chained vs monotone imputation, choose how many imputations to run, and pool results with mi estimate in Stata.
Spearman Rank Correlation in SPSS: Procedure, Output, and Reporting
How to run a Spearman rank correlation in SPSS via Bivariate Correlations: when to prefer it over Pearson, tied-rank handling, reading rho and Sig. (2-tailed), and the APA reporting line.
Principal Component Analysis in SPSS: Menus, Retention Rules, and Component Scores
How to run principal component analysis in SPSS: the Dimension Reduction > Factor dialog, eigenvalue and scree-plot retention rules, rotation, and saving component scores as new variables.
ANCOVA in SPSS: Covariates, Assumptions, and Adjusted Means
How to set up ANCOVA in SPSS’s General Linear Model > Univariate procedure, which assumptions it adds beyond ANOVA, and how to get and report covariate-adjusted (estimated marginal) means with Bonferroni-corrected pairwise comparisons.
Wilcoxon Signed-Rank Test in SPSS: Menus and Reporting
Both SPSS menu paths for the Wilcoxon signed-rank test, how to read the Ranks and Test Statistics output each produces, and how to compute the effect size SPSS doesn’t print.
Handling Missing Values in SPSS: Codes, Exclusion, and Imputation
Declare user-missing codes in Variable View, understand listwise vs. pairwise exclusion by procedure, diagnose the missingness pattern with Missing Value Analysis, and use SPSS’s Multiple Imputation tool and Rubin’s rules correctly.
Linear Mixed Models in SPSS: The MIXED Procedure
How to fit linear mixed models in SPSS with the MIXED procedure: the menu path, full command syntax, choosing a covariance structure, REML vs ML, and reading the fixed-effects and covariance-parameter output.
Box Plots in R: boxplot() and ggplot2’s geom_boxplot()
A runnable R workflow for box plots: base R’s boxplot() and its fivenum()-based hinges, ggplot2’s geom_boxplot() and its quantile()-based hinges (and why the two can draw different box edges from identical data), outlier flagging via the 1.5×IQR fence, notches, and overlaying raw data points with geom_jitter().
Scatterplots in R: plot() and ggplot2’s geom_point()
How to build scatterplots in R with base plot() and ggplot2’s geom_point() — grouping by color/shape, fixing overplotting, adding loess/lm trend lines with geom_smooth(), and the silent-NA-drop pitfall that catches both methods differently.
Histograms in R: hist() and ggplot2’s geom_histogram()
A runnable R workflow for histograms: base hist() and its breaks argument (numeric, vector, or Sturges/Scott/FD), the unequal-width-bin freq warning, silent NA handling, and ggplot2’s geom_histogram() — binwidth vs bins, group comparison with fill and facet_wrap(), and density overlays. Every output block is real R 4.6.1 / ggplot2 4.0.3 console output.
Independent-Samples t-Test in SPSS: Step by Step
How to run an independent-samples t-test in SPSS: data layout, the Define Groups dialog, which Levene’s-test row to report, reading the output table, and calculating the effect size SPSS doesn’t print by default.
Calculating Z-Scores in SPSS: Descriptives Checkbox vs. COMPUTE
How to standardize a variable in SPSS using the Descriptives “Save standardized values as variables” checkbox versus a manual COMPUTE formula, and how to interpret the resulting z-score.
Cluster Analysis in SPSS: Hierarchical vs. K-Means
When to use hierarchical clustering (exploratory, dendrogram, unknown cluster count) versus K-means clustering (specified cluster count, larger datasets) in SPSS, and how to read each procedure’s output.
MANOVA in SPSS: Setup, Assumptions, and Follow-Up
A practical walkthrough of running MANOVA in SPSS: GLM Multivariate setup, the Box’s M and multivariate-normality assumption checks, reading Pillai’s Trace, Wilks’ Lambda, Hotelling’s Trace and Roy’s Largest Root, and deciding how to follow up a significant multivariate effect with univariate tests.
Bar Charts in SPSS: Counts, Means, and Error Bars
Simple bar charts (counts) vs. bar-of-means charts in SPSS Chart Builder, plus the Element Properties setting for confidence-interval, standard-error, or standard-deviation error bars, and how to add it after the chart already exists.
Box Plots in Stata: graph box and over-Groups
How to build grouped box plots in Stata with graph box and graph hbox: the over() option for categorical breakdowns, and marker()/mlabel() for labeling outlier observations by case ID.
Scatterplots in SPSS: Simple, Grouped, and With a Fit Line
Building simple, grouped, and matrix scatterplots in SPSS Chart Builder, and adding a linear or Loess fit line in the Chart Editor.
Box Plots in SPSS: Creating and Interpreting Them
How to build a simple or clustered boxplot in SPSS from Chart Builder, Legacy Dialogs, or Explore, and how to read the whiskers plus the circle (outlier) and asterisk (extreme value) case-number flags.
Mann-Whitney (ranksum) Test in Stata
Stata’s ranksum command syntax for the Mann-Whitney test, reading the z statistic it reports instead of a U value, and the tie correction Stata applies to the variance automatically.
Propensity Score Matching in Stata: psmatch2 vs. teffects psmatch
Why psmatch2 (user-written) and teffects psmatch (official) are not interchangeable in Stata: syntax differences, the standard-error gap Abadie and Imbens flagged, balance diagnostics with pstest and tebalance, common support, and citation implications for reproducibility.
Recoding Variables in Stata: recode, replace, and generate
Stata offers three ways to create or change a variable: recode, replace, and generate. Here is the range-rule syntax recode uses, the specific way replace destroys original data, and when each command is the right one.
ANOVA in Stata: The anova Command and Postestimation
How to run one-way and factorial ANOVA with Stata’s anova command, read the ANOVA table, and follow up with margins and pwcompare for post hoc comparisons.
Stata Do-Files: Structure for a Reproducible Workflow
The do-file header, comment styles, and file-path conventions that make a Stata analysis reproducible: version, clear all, set more off, log using, and running the file the way a collaborator actually would.
Making a Histogram in SPSS With a Normal Curve Overlay
Three SPSS routes to a normal-curve histogram overlay, how to adjust bin width afterward, and what a visual match against the curve does and doesn’t tell you versus a formal normality test.
Running a t-Test in R: t.test() Syntax and Output
Base R’s t.test() function: formula vs. vector calling syntax, why var.equal defaults to Welch’s t-test instead of the pooled version, and extracting p-values, confidence intervals, and group means from the returned object for a report.
Standard Deviation in R: sd(), na.rm, and By-Group Calculation
A worked R guide to sd(): why it silently returns NA on any missing value without na.rm = TRUE, what the sample-vs-population formula means for your reported SD, and by-group standard deviation with both aggregate() and dplyr::group_by().
The reshape Command in Stata: Wide to Long and Back
How Stata’s reshape long and reshape wide commands convert data between wide and long layouts, the i() and j() options explained through a worked repeated-measures dataset, the stub-naming rules that cause most reshape errors, and when reshape fails versus when a different tool is the better choice.
Chi-Square Test in Stata: tabulate, chi2, and Fisher’s Exact
How to run a chi-square test of independence in Stata with tabulate …, chi2: reading the Pearson chi2 output, using the exact option (Fisher’s exact test) when expected cell counts are small, and tab2 for testing several variable pairs at once.
Mann-Whitney U Test in SPSS: Menus, Ranks, and Reporting
Both SPSS menu paths for the Mann-Whitney U test, how to read the mean-rank and test-statistic output each one produces, and when it beats an independent-samples t-test.
Levene’s Test in SPSS: Where It Appears and What to Do When It’s Significant
A named diagnostic embedded inside three different SPSS procedures, not a menu item of its own: automatic in the independent-samples t-test, opt-in via an Options checkbox in both one-way and two-way ANOVA, with a different row-switch or correction for each when it comes back significant.
Labeling Variables and Values in Stata
label variable names a column; label define plus label values name the numeric codes inside it as a separate, reusable object. This guide covers the syntax for both and why keeping them separate prevents unlabeled do-files from becoming unreadable once more than one person works on them.
Logistic Regression in Stata: logit vs. logistic
How Stata’s logit and logistic commands relate: logit prints coefficients on the log-odds scale, logistic prints odds ratios, and both share the same postestimation (margins, estat gof, lroc).
Recoding Variables in SPSS: Into Same vs Into Different Variables
SPSS offers two Recode commands that look alike but behave very differently. Here’s why Into Different Variables should be your default, how the Old and New Values dialog works, and the specific data-loss risk of recoding into the same variable.
SPSS Syntax: Writing Reproducible Analysis Files
How to use the Paste button to build a runnable .sps syntax file, comment it well, and run it from a clean, unmodified dataset so an SPSS analysis is actually reproducible.
Multiple Regression in SPSS: Entry Methods, Diagnostics, and Reporting
The Analyze > Regression > Linear menu, choosing Enter vs. Stepwise vs. Hierarchical entry by research question, requesting VIF/tolerance and residual plots, and reporting the full model.
Repeated-Measures ANOVA in SPSS: Setup and Corrections
How to define the within-subjects factor for repeated-measures ANOVA in SPSS, read Mauchly first, and pick the right sphericity correction.
Merging Datasets in Stata: 1:1, m:1, and _merge
How Stata’s merge command works by match type (1:1, m:1, 1:m, m:m), how to read the _merge result codes, and the duplicate-master-key and unmatched-observation errors that silently corrupt a join.
Running ANOVA in R: aov(), car::Anova(), and Type III Sums of Squares
A worked R walkthrough: why aov() always gives Type I sums of squares, why that silently misleads for unbalanced two-factor designs, and the exact car::Anova(type=3) plus contr.sum fix, with real numbers at every step.
Cronbach’s Alpha in SPSS: Reliability Analysis and Item-Total Statistics
Run SPSS Reliability Analysis, read the item-total statistics table, and use Alpha if Item Deleted to spot a weak item in your scale.
Binary Logistic Regression in SPSS: Procedure and Output
The Analyze > Regression > Binary Logistic menu path, and how to read the Omnibus test, Model Summary, Hosmer-Lemeshow, classification table, and Exp(B) as an odds ratio.
Descriptive Statistics in SPSS: Frequencies, Descriptives, and Explore
Frequencies, Descriptives, or Explore in SPSS? What each procedure computes, which variable type it suits, and when to reach for each one instead of defaulting to just one.
Pearson Correlation in SPSS: Procedure, Output, and Reporting
The Bivariate Correlations menu path, checking linearity and outliers first, reading the r/Sig./N output table, listwise vs. pairwise exclusion, matrix formatting and the multiple-comparisons caveat, and the APA reporting line.
The append Command in Stata: Stacking Datasets
How to use Stata’s append command to stack datasets by row: the append-vs-merge decision, the force option and the type conflicts it papers over, generate() for tagging source files, and the variable-mismatch pitfalls that cause silent data loss.
Two-Way ANOVA in SPSS: Main Effects, Interaction, and Simple Effects
Set up a two-way ANOVA via GLM Univariate, read the interaction row before the main effects, plot it, and run simple-effects follow-up tests when it’s significant.
Bar Charts in Stata: graph bar and graph hbar
How to build grouped and stacked bar charts in Stata with graph bar and graph hbar: the over() option for categorical breakdowns, asyvars for stacking, and value labels.
Regression in Stata: regress, Postestimation, and Reporting
How to run a regression in Stata: the regress command for simple and multiple OLS, robust and clustered standard errors, postestimation diagnostics (predict, estat hettest, estat vif, estat ovtest), and exporting publication-ready tables with outreg2 or esttab.
Testing Normality in SPSS: Shapiro-Wilk, K-S, and the Plots
Where SPSS runs the Shapiro-Wilk and Lilliefors-corrected K-S tests, why sample size flips which one you should trust, and how to read the Q-Q plots when a large sample ‘fails’ normality on a difference too small to matter.
Histograms in Stata: histogram and twoway histogram
How to build a histogram in Stata: bin() and width() control, density vs. frequency vs. percent scaling, the normal overlay, by-group panels, and when to switch to twoway histogram to combine a histogram with another plot type.
One-Way ANOVA in SPSS: Procedure, Post Hoc Tests, and Output
How to run a one-way ANOVA in SPSS, pick Tukey HSD or Games-Howell based on Levene’s test, and read the ANOVA table, post hoc comparisons, and means plot.
Scatterplots in Stata: twoway scatter and lfit Overlays
How to build a scatterplot in Stata with twoway scatter, add an lfit or qfit regression-line overlay, and combine multiple twoway elements in one graph command.
Mauchly’s Test of Sphericity in SPSS: Reading the Output and Choosing a Correction
Where SPSS prints Mauchly’s Test of Sphericity, what Mauchly’s W, Sig., and the epsilon columns mean, and how to choose the Greenhouse-Geisser or Huynh-Feldt correction and report the corrected degrees of freedom.
The collapse Command in Stata: Aggregating a Dataset by Group
collapse (stat) varlist, by(groupvars) replaces a Stata dataset in memory with one row per group. This guide covers the syntax for multiple statistics and by-groups, what collapse destroys, preserve/restore, and the frequency-weight gotcha, with a worked before/after example.
Running a t-Test in Stata: ttest and ttesti
How to run a t-test in Stata: the ttest command for raw data, the ttesti immediate form for summary statistics, the one-sample/two-sample/paired variants, the unequal and welch options, and how to read Stata’s output block.
How to Run a T-Test in SPSS and Read the Output
Menu paths for all three SPSS t-tests — including paired-variable pairing mechanics and the Paired Samples Correlations output — how to read Levene’s Test, and the exact APA reporting line.
Logistic Regression in R: glm(), Odds Ratios, and Diagnostics
A runnable R workflow for logistic regression: glm(family = binomial), exponentiating coefficients to odds ratios, why confint() profile intervals differ from Wald, pseudo-R-squared from logLik(), ROC/AUC with pROC, and how to spot separation. Every output block is real R 4.6.1 console output.








