data have;
input element$ 1-2 qt;
datalines;
A 1
B 2
Cc3
D 4
Ee5
;
data want;
set have end=last nobs=nobs;
array x{999} $ 32 _temporary_;
x{_n_}=element;
if last then do;
do i=1 to nobs-1;
var1=x{i};
do j=i+1 to nobs;
var2=x{j};output;
end;
end;
end;
keep var1 var2;
run; I found this, and it works but I want to apply this to each User_ID and not the entire list. I am trying method with first and last but I am getting null pointer exception. This is what I have so far: data want;
set have;
retain total_rows 0 a 1;
by User_ID;
total_rows = total_rows +1;
a = a +1;
if first.User_ID then do;
a=1;
array x{999} $ 32 _temporary_;
x{_n_}=dates;
end;
if last.User_ID then do;
do i = 1 to total_rows-1;
dates=x{i};
do j=rownum+1 to total_rows;
var2=x{j};
output;
end;
end;
end;
run; It works find until the do = i bit.. I have formatted etc its just the last bit I am struggling to get 😞
... View more