The KEEP statement does not use = or variables in parentheses. That form is used as a data set option.
When you use Keep this way:
34 age_months = intck("month",birth_date,cov_month);
35 KEEP =(cov_month yearmo use_cov_month ISCURRMONTH isRolling12month aso_ind src_div_id src_mbr_id cov_month birth_date
SAS thinks that your are 1) creating a new variable named Keep and assigning the values inside the ().
Since the variable Keep is not defined SAS assumes you want a numeric variable and expects the variables in the () to have some sort of numeric operator involved (the more specific cause of that message.
Use this form to keep a list of variables with the Keep statement. (this is shorter than your version)
KEEP cov_month yearmo use_cov_month ISCURRMONTH isRolling12month aso_ind src_div_id src_mbr_id cov_month birth_date ;
... View more