BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
michtka
Fluorite | Level 6

Hi guys, i would like to obtain the next table:

N       TRT     col0

1        2        Number of subjects

missing       1        Number of subjects

I use proc sql to try to get this:

input subjid trt fday  tday;
    datalines;
    1  1 1 5
    2  1 . 4
    2  1 . 3
    3  1 1 4
    3  2 1 -5
    4  2 1 2
    4  1 1 4
    ;
    run;


    proc sql;
   create table total as
   select count(distinct subjid) as n, trt 'Treatment', 'number of subjects' as col0
   from new
   where fday ne . and tday le  0
   group by trt;
   quit;

    proc print data=total noobs; run;

But I obtain only one row:

N   TRT     col0

1    2          number of subjects

Not appearing the row with missing data.

Can anyone help me to write the code via sql to consider this row with missing data?

Thanks,

V


1 ACCEPTED SOLUTION

Accepted Solutions
michtka
Fluorite | Level 6

Thanks Hai.kuo, in terms of the table you are right, but the "where condition" cant change in my code.

I found a possible solution keeping my where condition, adding an extra condition:

     proc sql;
   create table totalx as
   select count(distinct subjid) as n, trt 'Treatment', 'number of subjects condition A' as col0
   from new
   where fday ne .
   group by trt

   union

   select count(distinct subjid) as n, trt 'Treatment', 'number of subjects condition B' as col0
   from new
   where fday ne . and tday le  0
   group by trt
   order by col0;
   quit;

   proc transpose data=totalx out=totalt (drop=_name_) prefix=trt;
   by col0;
   id trt;
   var n;
   run;

View solution in original post

5 REPLIES 5
Haikuo
Onyx | Level 15

If 'n' is the result of count() , then 'n' could be '0', but it can never be missing. So what is the purpose of your code?

Haikuo

michtka
Fluorite | Level 6

This is my problem, I was expected n=0 for trt=1, but  is not, because there is  not record for trt=1  with my where condition , then SAS no shows the row.

and I need to report the avobe table: trt=2 n=1 and   trt=1   n=0 , but I dont want to write hardcoding code in my code.


michtka
Fluorite | Level 6

missing have to be zero in my final table,...sorry , maybe i confused you.

Haikuo
Onyx | Level 15

Then try:

  proc sql;

  create table total as

  select count(fday) as n, trt 'Treatment', 'number of subjects' as col0

  from new

where fday eq . or tday le 0

  group by trt;

  quit;

Haikuo

michtka
Fluorite | Level 6

Thanks Hai.kuo, in terms of the table you are right, but the "where condition" cant change in my code.

I found a possible solution keeping my where condition, adding an extra condition:

     proc sql;
   create table totalx as
   select count(distinct subjid) as n, trt 'Treatment', 'number of subjects condition A' as col0
   from new
   where fday ne .
   group by trt

   union

   select count(distinct subjid) as n, trt 'Treatment', 'number of subjects condition B' as col0
   from new
   where fday ne . and tday le  0
   group by trt
   order by col0;
   quit;

   proc transpose data=totalx out=totalt (drop=_name_) prefix=trt;
   by col0;
   id trt;
   var n;
   run;

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 1174 views
  • 0 likes
  • 2 in conversation