@SAS_prep
Does below code give you what you're after?
Data have;
infile datalines truncover;
Input variable_id $3. @5 _2014Q1 @7 _2014Q2 @9 _2014Q3 @11 _2014Q4 @13 _2015Q1 @15 _2015Q2 @17 _2015Q3 @19 _2015Q4 @21 Varlist $100.;
Datalines;
1aw 3 . 2 . 5 . . . _2014Q1,_2014Q2,_2014Q3,_2014Q4
5td . . . 1 . 8 . . _2014Q1,_2014Q2,_2014Q3,_2014Q4,_2015Q1
t6v 9 . . . . . . . _2014Q1,_2014Q2,_2014Q3,_2014Q4
n4a 2 6 5 4 4 . . . _2014Q1,_2014Q2,_2014Q3,_2014Q4,_2015Q1,_2015Q2,_2015Q3,_2015Q4
p24 . . . . . . . 2 _2015Q1,_2015Q2,_2015Q3,_2015Q4
;
run;
data want(drop=_i);
set have;
length count_vars 8 max_val 8 max_varName $32;
array dtvars {*} _201:;
count_vars=countw(varlist,',');
do _i=1 to dim(dtvars);
if find(varlist,vname(dtvars[_i]),'i')>0 then
do;
if max_val<dtvars[_i] then
do;
max_val=dtvars[_i];
max_varName=vname(dtvars[_i]);
end;
end;
end;
run;
proc print data=want;
run;
... View more