Hi,
Based on the data provided, I removed the by processing as each site was unique:
data want2;
set have;
array t[4] t1-t4;
array l[3] l1-l3;
l1 = sum(t[1],t[2]);
l2 = sum(l1,t[3]);
l3 = sum(l2,t[4]);
run;
Thanks & kind regards,
Amir.
Try this
data have;
input Site $ t1 - t4;
datalines;
B 1 4 5 3
C 1 2 3 3
D 2 1 5 1
E 1 4 5 3
;
data want(drop = i);
set have;
by Site;
array t[4] t1-t4;
array l[3] l1-l3;
l[1] = sum(t[1], t[2]);
do i = 2 to dim(l);
l[i] = sum(l[i-1], t[i+1]);
end;
run;
Result:
Site t1 t2 t3 t4 l1 l2 l3 B 1 4 5 3 5 10 13 C 1 2 3 3 3 6 9 D 2 1 5 1 3 8 9 E 1 4 5 3 5 10 13
Thank you very much. it works perfectly.
Hi,
Based on the data provided, I removed the by processing as each site was unique:
data want2;
set have;
array t[4] t1-t4;
array l[3] l1-l3;
l1 = sum(t[1],t[2]);
l2 = sum(l1,t[3]);
l3 = sum(l2,t[4]);
run;
Thanks & kind regards,
Amir.
@Amir , sure thing, I left it there since I took your own code as the base.
Glad you found your solution.
Hi @PeterClemmensen,
Thanks. My post was a reply to the OP, which is perhaps who you thought I was!
Thanks kind regards,
Amir.
Ah sorry. Missed that 😄
@Amir This works perfectly with my data.
Thank you!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.