Help using Base SAS procedures

If/Then statement problems

Reply
New Contributor
Posts: 3

If/Then statement problems

Issue with If then subsetting statement with data with both numerical and character values. No error is showing but note is  NOTE: Invalid numeric data, '30-35 months' , at line 75 column 13. The output table is showing no values at all. 

data nis_age;
set nis_use;
if AGEGRP = "30-35 months" then output;
run;

Help please. 

Super User
Posts: 6,785

Re: If/Then statement problems

When you examine the variable AGEGRP, you will find that it is a numeric variable.  There is no way it could possibly hold the characters "30-35 months".  You may need to fix the data first.

Super User
Posts: 13,583

Re: If/Then statement problems


hudasaeb wrote:

Issue with If then subsetting statement with data with both numerical and character values. No error is showing but note is  NOTE: Invalid numeric data, '30-35 months' , at line 75 column 13. The output table is showing no values at all. 

data nis_age;
set nis_use;
if AGEGRP = "30-35 months" then output;
run;

Help please. 


As @Astounding says, AGEGRP is numeric. If the values of Agegrp are integers you could use in with the range operator:

 

if AGEGRP in (30:35) then output;

or alternatively

if 30 le agegrp le 35 then output;

 

le is "less than or equal" to include the end values.

PROC Star
Posts: 8,169

Re: If/Then statement problems

My guess is that your dataset has formatted values. If that is the case, then you could use the vvalue function. i.e.,

 

data nis_age;
  set nis_use;
  if vvalue(AGE_GROUP) eq '30-35 months';
run;

Art, CEO, AnalystFinder.com

 

Ask a Question
Discussion stats
  • 3 replies
  • 215 views
  • 3 likes
  • 4 in conversation