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!
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.
Ready to level-up your skills? Choose your own adventure.