Your problem is that you're mixing up numeric and character data. And SAS' automatic conversions are trying to help. By saying it deletes when variable = ' ', this means variable is character. So comparing to 0 forces an automatic conversion to numeric. (check the warnings in the log)... So you need to use the following delete statement if put(variable,5.) < 0 and put(variable,5.) ne . then delete. SAS will still complain about invalid numeric data, but your tests will work correctly. Use an appropriate numeric format instead of the 5. if that's not appropriate.
... View more