BookmarkSubscribeRSS Feed
jdub
Calcite | Level 5
I have observations for one variable and two additional variables representing two separate classes.

I would like to create a variable D, representing a ratio that relates an observation for variable var A in class B = 1 to observation for var A in class B = 0 given that A and B are in class C.

The data set might look something like:
varA varB varC
1 1 1
2 1 1
3 0 1
4 1 2
5 1 2
6 0 2
7 1 3
8 1 3
9 0 3

varD:
(1/3)
(2/3)
(4/6)
(5/6)
(7/9)
(8/9)

thanks much for any help
2 REPLIES 2
Ksharp
Super User
[pre]


data temp;
input varA varB varC ;
datalines;
1 1 1
2 1 1
3 0 1
4 1 2
5 1 2
6 0 2
7 1 3
8 1 3
9 0 3
;
run;
data result(keep=vard);
merge temp(where=(varb eq 1) )
temp(rename=(vara=_vara varb=_varb) where=(_varb eq 0));
by varc;
vard=vara/_vara;
run;
[/pre]




Ksharp

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1052 views
  • 0 likes
  • 2 in conversation