BookmarkSubscribeRSS Feed
knveraraju91
Barite | Level 11

Dear,

 

I am trying to calculate number of subjects based on a condition.

With my code, I donot see all OBS in the output. How to get all OBS. Please help. Thank you

 

Code:

proc sql;

create table one as

select *, count(distinct id) as NS

from data1

where flag='Y';

quit;

 

Data1

id            flag

1               Y

1               Y

1               Y

2               Y

2               Y

3               

4                 

5                Y

6                

7                Y

 

output expected:

Data2

id            flag             NS

1               Y                4

1               Y                4

1               Y                 4

2               Y                 4

2               Y                4

3               

4                 

5                Y               4

6                

7                Y               4

 

output getting

Data1

id            flag             NS

1               Y                 4

1               Y                 4

1               Y                 4

2               Y                 4

2               Y                  4          

5                Y                 4           

7                Y                 4

 

 

 

4 REPLIES 4
PGStats
Opal | Level 21
proc sql;
create table one as
select *, (select count(distinct id) from data1 where flag="Y") as NS
from data1;
quit;
PG
knveraraju91
Barite | Level 11

Thank you for the code. It worked.

How to include one more ststement as I have to calculate number of subjects by another variable(where AFLAG='Y') in same data step.

 

your code:

proc sql;
create table one as
select *, (select count(distinct id) from data1 where flag="Y") as NS
from data1;
quit;

 

knveraraju91
Barite | Level 11

Thank you for the code. It worked.

How to include one more ststement as I have to calculate number of subjects by another variable(where AFLAG='Y') in same data step.

 

Your code

proc sql;
create table one as
select *, (select count(distinct id) from data1 where flag="Y") as NS
from data1;
quit;
PGStats
Opal | Level 21

Experiment and understand how this query works. Extending it should then become obvious.

 

proc sql;
create table two as
select 
	*, 
	(select count(distinct id) from data1 where flag="Y") as NS,
	(select count(distinct id) from data1 where aflag="Y") as aNS
from data1;
quit;
PG

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
  • 4 replies
  • 1479 views
  • 2 likes
  • 2 in conversation