Here's a SAS note that describes the change. It was intentional -- to help with name collisions. But unfortunately it broke your process.
More documentation/explanation in this Usage Note 45710: Naming convention for statistics in an output data set created by PROC TABULATE.
Here is a brute-force SAS macro program -- which I dug out of a Tech Support track and which you should definitely test before using in production -- that renames the variables back to the old style, trimming the underscore-number suffix.
%macro myrename(dsn=&syslast);
%let lib=%scan(&syslast,1,%str(.));
%let mem=%scan(&syslast,2,%str(.));
proc sql noprint;
/* generate a command line : RENAME oldname=newname */
select catt('rename',' '!!name,'=',substr(name,1,length(name)-index(reverse(trim(name)),'_'))) into:renamelist separated by ";"
from sashelp.vcolumn where libname=upcase("&lib.") and memname=upcase("&mem.") and (lowcase(name) like '%_pctsum_%' OR lowcase(name) like '%_pctn_%' );
/* execute this command in proc datasets */
proc datasets lib=&lib nolist; modify &mem; &renamelist; run;quit;
%mend myrename;
%myrename;
... View more