Since the macro language has only datatype text (which means that "2019 - 1" is not a formula, but just a string of characters), you need to force it to perform calculations by using %EVAL:
price_%eval(&year - 1)
Example:
%let year = 2019;
data test;
price_&year = 1;
price_%eval(&year - 1) = 2;
run;
proc print data=test noobs;
run;
Result:
price_2019 price_2018
1 2
... View more