🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 09-13-2017 06:14 AM
(1372 views)
Hey everyone, I have written some codes to calculate the P_margin for 4 different years. the code and the results are shown below. But I would like to have S for year 1 eq to 1. How can I modify this code ?
Thanx so much 🙂
data B;
S=1;
P=0.02;
do year=1 to 4;
S=S*(1-P);
P_marg=S*P;
output;
end;
run;
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Try this
data B;
S=1;
P=0.02;
do year=1 to 4;
if year=1 then s=1;
else S=S*(1-P);
P_marg=S*P;
output;
end;
run;
3 REPLIES 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Try this
data B;
S=1;
P=0.02;
do year=1 to 4;
if year=1 then s=1;
else S=S*(1-P);
P_marg=S*P;
output;
end;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
How about simply
data B;
S=1;P=0.02;Year=1;P_marg=S*P;output;
do year=2 to 4;
S=S*(1-P);
P_marg=S*P;
output;
end;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
There's another way to interpret your request. It's possible you want exactly the same numbers you got from your original program, but with S=1 on the first observation. For that:
data B;
S=1;
P=0.02;
do year=1 to 4;
S=S*(1-P);
if year=1 then replacement_S=1;
else replacement_S = S;
P_marg = S * P;
output;
end;
drop S;
rename replacement_S = S;
run;