Wow @Quentin, that is SO HELPFUL for #1, and is exactly what I'm looking for. The assert macro idea is exactly the design pattern I was going for (drawing on the 14 other programming languages and related design patterns I've learned previously). I'll update my code, and reply back if there are issues. Re #2, formats seem to be able to lookup and convert one value (or object) to another (in the Smalltalk language, an equivalent is a Dictionary object). Ie, in the code you provided, you're looking up and converting 'No Urgent Place','Home','Work'='OK' these values to 'OK', and other values to 'BAD'. In these case, they are all character values. I want to do the same conceptually, however convert from character inputs ('7AM','10AM','2PM','6PM','10PM') to numbers (7,10,14,18,22) and place them in a new numeric variable. Of course, only after the character values have survived the assert macro after reading them in from the file/cards. Thankfully you've given me some ideas of things to try, and googling "SAS format as lookup table" now is more informative -- more signal and less noise. For example, https://support.sas.com/resources/papers/proceedings15/2219-2015.pdf "Table Lookup Techniques: From the Basics to the Innovative", and the USING FORMATS section. Cody's book, the free first chapter available for download, is very helpful too. I have the book on order. Thanks again, so much. I welcome any additional thoughts on #2, and I'll try some things. Thanks, again Peter
... View more