In reply to Tom.

Thanks for the suggestion. I certainly intend to continue blogging about efficiency. To quickly answer your specific questions:
1) I haven't run tests either, but a DO loop with an IF-THEN/ELSE statement inside the loop is less efficient. The most efficient is either CHOOSE or to use the LOC function such as idx=LOC(Y<=0); Y[idx]=.;
2) In your MAX example, both are equally efficient. However, the subscript reduction operator will be more efficient when finding the max of rows or columns.

See http://blogs.sas.com/iml/index.php?/archives/148-Use-Subscript-Reduction-Operators!.html
and http://blogs.sas.com/content/iml/2010/10/22/looping-versus-loc-ing-revisited/