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".
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.