SAS' Leonid Batkhan explores shell scripting as an alternative way to implement parallel processing.
If I were to say that we live in uncertain times, that would probably be an understatement. Therefore, I won’t say that. Oops, I already did. Or did I? For centuries, people around the world have been busy scratching their heads in search of a meaningful answer to Shakespeare’s profoundly
SAS' Leonid Batkhan reveals a fuss-free way to halt SAS program execution and terminate SAS session in batch-processing scenarios.
SAS' Leonid Batkhan reveals coding techniques that give you control of when and whether global statements are executed.
SAS' Leonid Batkhan demonstrates a popular "divide-and-conquer" efficiency strategy using SAS/Connect®.
SAS' Leonid Batkhan reveals how to change lengths for all character variables in a data set and all data sets in a data library to facilitate data migration to Unicode encoding environment.
SAS' Leonid Batkhan describes programming technique for creating multi-purpose SAS® Macro functions.
SAS' Leonid Batkhan shows you how to compare SAS data sets that include common and uncommon columns. You'll learn how to check mark commonalities and color-code differences in data tables side-by-side columns and add a comments field to see greater detail.
Just when you think you’ve seen it all, life can surprise you in a big way, making you wonder what else you've missed. That is what happened when I recently had a chance to work with the SAS® Scalable Performance Data Server, a product that's been around a while, but
Have you ever thought of selling sand on the beach? Neither have I. To most people the mere idea is preposterous. But isn’t it how all great discoveries, inventions and breakthroughs are made? Someone comes up with an outwardly crazy, outlandish idea, and despite all the skepticism, criticism, ostracism, ridicule
Have you ever tried to pass comma-delimited values to SAS macro or to a SAS macro function? How can SAS distinguish commas separating parameters or arguments from commas separating parts of the values? Passing comma-delimited value as an argument to a SAS macro function Let’s say you want to extract
"There's a way to do it better - find it." - Thomas A. Edison When it comes to SAS coding, this quote by Thomas A. Edison is my best advisor. Time permitting, I love finding better ways of implementing SAS code. But what code feature means “better” – brevity, clarity
To those of you who have not read my previous post, Dividing by zero with SAS, it's not too late to go back and make it up. You missed a lot of fun, deep thought and opportunity to solve an unusual SAS coding challenge. For those who have already read
Whether you are a strong believer in the power of dividing by zero, agnostic, undecided, a supporter, denier or anything in between and beyond, this blog post will bring all to a common denominator. History of injustice For how many years have you been told that you cannot divide by
In automated production (or business operations) environments, we often run SAS job flows in batch mode and on schedule. SAS job flow is a collection of several inter-dependent SAS programs executed as a single process. In my earlier posts, Running SAS programs in batch under Unix/Linux and Let SAS write
Recently, I worked on a cybersecurity project that entailed processing a staggering number of raw text files about web traffic. Millions of rows had to be read and parsed to extract variable values. The problem was complicated by the varying records composition. Each external raw file was a collection of
My New Year's resolution: “Unclutter your life” and I hope this post will help you do the same. Here I share with you a data preparation approach and SAS coding technique that will significantly simplify, unclutter and streamline your SAS programming life by using data templates. Dictionary.com defines template as
SAS batch jobs can generate many log files that accumulate over time. In this post, we present a SAS program that cleans up old log files on your system.
It is imperative for developers, whether hardware or software engineers, to foresee unintended (probable or improbable) system usages and implement features that will make their creations foolproof, that is protected from misuse. Learn more about developing foolproof solutions with this old Russian anecdote.