Range

Reply
Frequent Contributor
Posts: 75

Range

data AGE;

set B;

where AGE =>65 OR AGE<12;

run;

I want to have a dataset with records that have AGE=>65 or AGE<12, but the above code doesn't work.

I get this in the log:

                  _
                  22
                  76

ERROR: Syntax error while parsing WHERE clause.

ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant,

          a missing value, INPUT, PUT. 

ERROR 76-322: Syntax error, statement will be ignored.

Respected Advisor
Posts: 3,799

Re: Range

You need >= or (and I never say always but) I always use mnemonics GE.

18         data _null_;
19            set sashelp.class;
20            where AGE >=65 OR AGE<12;
21            put _all_;
22            run;

Name=Joyce Sex=F Age=
11 Height=51.3 Weight=50.5 _ERROR_=0 _N_=1
Name=Thomas Sex=M Age=
11 Height=57.5 Weight=85 _ERROR_=0 _N_=2
NOTE: There were
2 observations read from the data set SASHELP.CLASS.
      WHERE  not (AGE>=
12 and AGE<65);
Contributor
Posts: 66

Re: Range

Posted in reply to data_null__

To  avoid confusion with those symbols, I always use  GE for >= (Greater than or Equal to)   and LT for < (Less Than).

Thanks!

Frequent Contributor
Posts: 75

Re: Range

Thanks for all the helpful comments.

But now I notice that I have some records with Age=.

So now I want age that are also 0=<AGE<12.

Thanks

Ask a Question
Discussion stats
  • 3 replies
  • 210 views
  • 0 likes
  • 3 in conversation