NESUG 25 In Review

I had a great time at NESUG 25!  Great networking opportunities, excellent papers/presentations, and a tremendous amount of support from SAS itself. Papers As always, there were a number of terrific papers.  The full proceedings are now posted.  I w…

Object-oriented access to SAS data in a custom task

Most custom tasks need to access SAS data in some way. Since custom tasks are built using Microsoft .NET, and the .NET Framework is object-oriented, it would be convenient if we had an object-oriented method for navigating SAS data sources. That was the thinking behind the “SasData”-namespace classes within the […]

SAS 9.3 macro SQL trick

Suppose you need to create a numbered series of macro variables, one macro variable per row, from an SQL query. Suppose you magically know in advance that a given WHERE clause returns, say, 123 rows.  No problem! proc sql; select customer_name into :…

Efficient acceptance-rejection simulation

A few days ago on the SAS/IML Support Community, there was an interesting discussion about how to simulate data from a truncated Poisson distribution. The SAS/IML user wanted to generate values from a Poisson distribution, but discard any zeros that are generated. This kind of simulation is known as an […]