R has over 10,000 add-on packages, many containing multiple procedures, so it can do most of the things that SAS and SPSS can do and quite a bit more. The list below focuses on SAS and SPSS products and which of them have counterparts in R. As a result, some categories are extremely broad (e.g. regression) while others are quite narrow (e.g. conjoint analysis). This table does not contain the hundreds of R packages that have no counterparts in the form of SAS or SPSS products. There are many important topics (e.g. mixed models, survival analysis) offered by all three that are not listed because neither SAS Institute nor IBM’s SPSS Company sell a product focused just on that.
Advanced Models
- SAS/STAT
- IBM SPSS Advanced Statistics
- R itself, MASS, many others
Association Analysis
- SAS Enterprise Miner
- IBM SPSS Association
- R: arules, arulesNBMiner, arulesSequences
Basic Statistics
- Base SAS
- IBM SPSS Statistics Base
- R
Bootstrapping
- SAS/STAT
- IBM SPSS Bootstrapping
- R: BootCL, BootPR, boot, bootRes, BootStepAIC, bootspecdens, bootstrap, FRB, gPdtest, meboot, multtest, pvclust, rqmcmb2, scaleboot, simpleboot
Classification Analysis
- SAS Enterprise Miner
- IBM SPSS Classification
- rattle, see also: neural networks and trees
Conjoint Analysis
- SAS/STAT: PROC TRANSREG
- IBM SPSS Conjoint
- R: homals, psychoR, bayesm
Correspondence Analysis
- SAS/STAT::PROC CORRESP
- IBM SPSS Categories
- R: ade4, cocorresp, FactoMineR, homals (most like SPSS Categories), made4, MASS, psychoR, PTAk, vegan
Data Access
- SAS/ACCESS
- SPSS Data Access Pack
- DBI, foreign, gdata::read.xls, Hmisc::sas.get, SAScii, sasxport.get, RODBC, sas7bdat (best choice for reading SAS files), WriteXLS, xlsReadWrite, XLconnect (best choice for Excel)
Data Collection
- SAS/FSP
- IBM SPSS Data Collection Family
- R: none; MySQL or PostgreSQL are popular among R users for this purpose
Data Mining
- SAS Enterprise Miner
- IBM SPSS Modeler (formerly Clementine)
- arules, FactoMineR, Rattle, Red-R, RWeka link to Weka, xgboost, many others
Data Mining, In-database Processing
- SAS In-Database Initiative with Teradata
- IBM SPSS Modeler
- PL/R for PostgreSQL, RODM for Oracle
Data Preparation
- SAS: Various procedures
- IBM SPSS Data Preparation, various commands
- R: these are specific to data error checking: assertr, dataMaid, deducorrect, ensurer (dprep is no longer being maintained), validate; these are more general purpose: dplyr, plyr, reshape, reshape2, sqldf, tidyr, various functions
Developer Tools
- SAS/AF, SAS/FSP, SAS Integration Technologies, SAS/TOOLKIT
- IBM SPSS Statistics Developer, IBM SPSS Statistics Programmability Extension
- R links to most popular compilers, scripting languages, and databases, StatET
Direct Marketing
- SAS doesn’t have anything like this
- IBM SPSS Direct Marketing
- R doesn’t have anything like this
Exact Tests
- SAS/STAT various procedures
- IBM SPSS Exact Tests
- R: coin, elrm, exact2x2, exactLoglinTest, exactmaxsel, and options in many others
Excel Integration
- SAS Add-in for Microsoft Office, SAS Enterprise BI Server
- SPSS: none (SPSS Advantage for Excel is discontinued)
- RExcel
Forecasting
- SAS/ETS
- IBM SPSS Forecasting
- Over 40 packages that do time series are described at the Task View link above under Time Series
Forecasting, Automated
- SAS Forecast Server
- IBM SPSS Forecasting
- R: forecast
Genetics
- SAS: JMP Genomics
- SPSS: None
- R: Bioconductor
Geographic Information Systems
- SAS/GIS, SAS/GRAPH
- SPSS Base
- R: maps, mapdata, mapproj, GRASS via spgrass6, RColorBrewer, see Spatial in CRAN Task Views
Graphical user interfaces
- SAS Enterprise Guide, IML Studio, SAS/ASSIST, Analyst, Insight
- IBM SPSS Statistics Base
- R: Menus & dialog boxes: Deducer, R Commander
Data Mining: rattle, Red-R
Graphics, Interactive
- SAS/IML Studio, SAS/INSIGHT, JMP
- SPSS: none
- R: cranvas, rggobi link to GGobi, iPlots, latticist, playwith, TeachingDemos
Graphics, Static
- SAS/GRAPH, ODS Graphics, Graph Template Language
- SPSS Base, Graphics Production Language
- R: ggplot2, gplots, graphics, grid, gridBase, hexbin, lattice, plotrix, scatterplot3d, vcd, vioplot, geneplotter, Rgraphics
Graphics, Template Builder
- Doesn’t use Grammar of Graphics model that forms the core of IBM SPSS Viz Designer or R’s ggplot2
- IBM SPSS Viz Designer
- R: Deducer::Plot Builder
Guided Analytics
- SAS/LAB
- SPSS: none
- R: none
Internet Control
- SAS/Intrnet
- SPSS: none
- R: CGIwithR, Rweb (see also Server Version below)
Matrix/linear Algebra
- SAS/IML
- IBM SPSS Matrix
- R has many matrix functions built in, matlab, Matrix, sparseM
Missing Values Imputation
- SAS/STAT::PROC MI
- IBM SPSS Missing Values
- R: arrayImpute, arrayMissPattern, Amelia, cat, Hmisc::aregImpute, Hmisc::fit.mult.impute, EMV, longitudinalData, mi, mice (similar to SPSS & SAS approach), mitools, mvnmle,
SeqKnn, VIM (nice visualization)
Neural Networks
- SAS Enterprise Miner
- IBM SPSS Neural Networks, IBM SPSS Modeler
- R: AMORE, grnnR, neuralnet, nnet, rattle
Operations Research
- SAS/OR
- SPSS: none
- R: glpk, linprog, LowRankQP, TSP
Output Management – this isn’t actually an add-on product but it’s so important that I include it here.
- SAS: Output Delivery System (ODS)
- SPSS: Output Management System (OMS)
- R: this is built into base R, but the dplyr package combined with the broom package makes saving output for further analysis much easier. The older plyr package is slightly more flexible, but much slower. The data.table package is the fastest, though less popular than dplyr.
Power Analysis
- SAS Power and Sample Size Application, SAS/STAT::PROC POWER, PROC GLMPOWER
- SPSS: SamplePower
- R: asypow, powerpkg, pwr, MBESS
Quality Control
- SAS/QC
- IBM SPSS Statistics Base
- R: qcc, spc
Regression Models
- SAS/STAT
- IBM SPSS Regression
- R, Hmisc, lasso, VGAM, pda, rms (replaces Design)
Sampling, Complex
- SAS/STAT: PROC SURVEY SELECT, SURVEYMEANS, etc.
- IBM SPSS Complex Samples
- R: pps, sampfling, sampling, spsurvey, survey, srvyr
Segmentation Analysis
- SAS Enterprise Miner
- IBM Modeler Segmentation
- R: cluster, rattle, som, see CRAN Task Views under Cluster for over 70 packages
Server Version
- SAS, SAS Enterprise Miner for your server
- IBM SPSS Statistics Server, IBM SPSS Modeler Server
- R for your server, rapache, R(D)COM Server, Rserve, StatET
Structural Equation Modeling
- SAS/STAT::PROC CALIS
- SPSS: Amos
- R: lavaan (can “mimic” Mplus or EQS output), OpenMX, sem
Tables
- Base SAS, PROC REPORT, PROC SQL, PROC TABULATE, SAS Enterprise Reporter
- IBM SPSS Custom Tables
- For display, the arsenal, compareGroups, tables and rreport packages are the most similar. The xtable package converts various tabular types of output to HTML or LaTeX. texreg does a wonderful job of comparing multiple models side-by-side. To create tables for use in further analysis (rather than for display): base::aggregate, Epi::stat.table, dplyr, reshape2, base::tapply. The MRCV package handles Multiple Response Categorical Variables (“check all that apply” items on surveys.)
Text Analysis/Mining
- SAS Enterprise Content Categorization, SAS Ontology Management, SAS Sentiment Analysis, SAS Text Miner
- IBM SPSS Text Analytics, IBM SPSS Text Analysis for Surveys
- R: corpora, emu, gsubfn, kernlab, KoNLP, koRpus, languageR, lsa, maxent, openNLP, openNLPmodels.en, openNLPmodels.es, RcmdrPlugin.TextMining, RKEA, RQDA, RTextTools, RWeka, Snowball, tautextcat, TextRegression, tm, tm.plugin.dc, tm.plugin.mail, topicmodels, wordcloud, wordnet, zipfR
Trees, Decision, Classification or Regression
- SAS Enterprise Miner
- IBM SPSS Decision Trees, IBM SPSS AnswerTree, IBM SPSS Modeler (formerly Clementine)
- ada, adabag, BayesTree, boost, caret, GAMboost, gbev, gbm, maptree, mboost, mvpart, OneR, party, pinktoe, quantregForest, rpart,rpart.permutation, randomForest, rattle, tree
My thanks go out to the many people who helped compile this table including:
Thomas E. Adams, Liviu Andronic, Jonathan Baron, Roger Bivand, Jason Burke,
Patrick Burns, David L. Cassell, Dennis Fisher, Peter Flom, Tal Galili, Chao Gai,
Bob Green, Frank E. Harrell Jr., Rob Hyndman, Holger K. von Jouanne-Diedrich,
Robert Kobacoff, Max Kuhn, Lee Francis, Paul Murrell, Yves Rosseel, Charilaos Skiadas, Greg Snow, Alexandre Sugiyama, Antony Unwin, Tobias Verbeke, Kyle Weeks,
Graham Williams, and David Winsemius.
All SAS and SPSS product names are registered trademarks of their respective companies.
Copyright 2008-2019 Robert A. Muenchen.
One of the most amazing sections of these lists is the listing of people who helped compile the lists. The R/SAS/SPSS community is teamwork-oriented!
Excellent list here. Very comprehensive! Will absolutely come in handy down the road. Thanks for sharing.
George
Hi George,
I’m glad you found it useful. If you ever think of something to add to it, please let me know.
Cheers,
Bob
You could add the OneR package to the Trees, Decision, Classification or Regression section: https://CRAN.R-project.org/package=OneR, the vignette can be found here: https://cran.r-project.org/web/packages/OneR/vignettes/OneR.html.
(Full disclosure: I am the author of this package)
Hi Holger,
I’ve just added it.
Thanks,
Bob
In the section for Graphics, Template Builder, I believe you have overlooked the advances that SAS has made in graphing. SAS now has GTL which is a graphics template language and ODS graphics procedures in BASE SAS. They can do all the graphs I see in your second edition of R for SAS and SPSS Users in Chapter 16.
The GTL reference PDF book is: https://go.documentation.sas.com/api/collections/pgmsascdc/9.4_3.4/docsets/grstatgraph/content/grstatgraph.pdf?locale=en#nameddest=titlepage
The ODS Prodecures Guide has a PDF here: https://go.documentation.sas.com/api/collections/pgmsascdc/9.4_3.4/docsets/grstatproc/content/grstatproc.pdf?locale=en#nameddest=titlepage
I had been primarily using SAS/Graph, but I switched over a few years ago to ODS graphics procedures like sgplot. The syntax is a little harder than for SAS/Graph, but it easier to do more advanced graphing.
Hi Alexandre,
The reason I didn’t list those is that this page is devoted to products, not features. A comprehensive cross-reference of features would not be feasible. However, I do think those are worth listing since they have essentially replaced SAS/Graph for many tasks. So I’ve included them, and I’ve added your name to the list of contributors to this article.
Thanks,
Bob