@Ksharp gets partial credit here. It's the right statement to add, but has to be added in exactly the right place.
In a DATA step, _numeric_ refers to all numeric variables that have been defined so far. To get rid of the original numeric variables, the order of the statements must specifically be:
array vars {*} _numeric_;
drop _numeric_;
array L1vars .........
That's the only point in your DATA step where _numeric_ refers to all the original numeric variables coming from HAVE. (Yes, technically the DROP statement could come between the SET statement and the first ARRAY statement.)
... View more