Mastering the SAS® DS2 Procedure: Advanced Data-Wrangling Techniques, Second Edition

I've had the pleasure of teaching with Mark Jordan on several occasions. My unbiased assessment is that Mark is one of the best instructors I have met at SAS. Therefore, I'm not at all surprised to discover that Mark is also talented in teaching by way of the written word, as evidenced by the second edition of Mastering the SAS® DS2 Procedure: Advanced Data-Wrangling Techniques.

For those of you who think writing a second edition is "child's play" compared to writing a first edition, let me tell you that is not the case. Having just completed a second edition myself (in the last week), I can attest to this fact. So why did Mark do all that work writing a new edition of an already excellent book? In the case of DS2, the answer is that DS2 has matured considerably since Mark wrote the original DS2 book. The new edition of Mark's book makes it clear that the functionality of the DS2 language has been enhanced with new features. For example, a new procedure allows you to convert existing DATA step programs to DS2 DATA programs. There is also a new PCRX package that allows Perl regular expressions to process text faster than using the "old" PRX functions. Improvements have also been added, making it easier and more efficient to access data from data sources such as Viya, Hadoop, Teradata, Cloud Analytic Services (CAS), or JSON.

If you work with "big data" you will want to take advantage of DS2's ability to process data in a multi-threaded environment. Along with SAS DS2 documentation, you will definitely want Mark Jordan's latest edition of his DS2 book on your book shelf.

Ron Cody, EdD
Retired professor and SAS Author


I love all of Mark’s books and his teaching style! He’s a powerhouse of knowledge about SAS.  This book is not an exception.

Mark's book is a very comprehensive and approachable resource for learning DS2.  His section 3.2.2 The Seven Subtle Dissimilarities should help traditional DATA STEP/PROC SAS programmers avoid some early frustrations when transitioning to the DS2 language.  His introductions to each section provide very clear justification for each element of the technology.  He uses simple examples to illustrate complex concepts.  I have not used DS2 threads yet, so I looked closer at this chapter on that topic.  He covered the essential information and I quickly was able to understand why, when and how I need to use threads in my DS2 code.

I highly recommend those looking to modernize their code and take advantage of this skill get this book!

Tricia Aanderud
Sr. Director Data Visualization Practice