I'm looking for ways to generate new obs from empty dataset(which have 0 obs).
Let's say you have 2 obs in adsl. From this data set, we create 0obs dataset(adsl_empty).
After that, please tell me if you know how to generate only 1obs with USUBJID = "No patients"; As I get "0 obs" after executing below sample. I want this to be 1 OBS in "adsl_x" dataset.
data work.adsl;
USUBJID ="xx1";output;
USUBJID ="xx2";output;
run;
data work.adsl_empty;
set work.adsl;
delete;
run;
data work.adsl_X;
set work.adsl_empty;
USUBJID = "No patients";output;
run;
Regards
Here's a simple DATA step approach:
data want;
if 5=4 then set adsl_empty;
USUBJID = 'No Patients';
output;
run;
One issue you may need to address is the length of the variable USUBJID. It has to be at least 11 characters long in ADSL_EMPTY, in order to be able to fit the full text within "No Patients".
You can do it in a variety of ways:
data step - set empty and new dataset with your data in example:
data temp; usubjid="No subjects"; run; data adsl; set adsl_blank temp; run;
proc append - put one dataset under another
proc sql - union all, selelct * from each
proc sql insert into
Here's a simple DATA step approach:
data want;
if 5=4 then set adsl_empty;
USUBJID = 'No Patients';
output;
run;
One issue you may need to address is the length of the variable USUBJID. It has to be at least 11 characters long in ADSL_EMPTY, in order to be able to fit the full text within "No Patients".
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
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.