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!
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.