Sample 54755: Create a new data set from an existing data set with a given number of observations where new observations contain missing values
From an existing data set, you can create a new data set with a given number of observations where all of the newly added observations contain missing values.
In the sample code on the Full Code tab, the newly created data set contains 10 observations. The number of observations in the original data set is stored in &NUM and the difference between 10 and &NUM is stored in &DIFF. A DO loop from 1 to &DIFF creates the new observations, and CALL MISSING sets all variables to missing.
These sample files and code examples are provided by SAS Institute
Inc. "as is" without warranty of any kind, either express or implied, including
but not limited to the implied warranties of merchantability and fitness for a
particular purpose. Recipients acknowledge and agree that SAS Institute shall
not be liable for any damages whatsoever arising out of their use of this material.
In addition, SAS Institute will provide no support for the materials contained herein.
The final data set should contain 10 observations. The number of observations in A is stored in &NUM, and the difference between &NUM and 10 is stored in &DIFF. When &NUM is less than 10, execute the DATA step to add the observations with the DO loop. The newly added observations contain missing values for all variables.
data a;
do i=1 to 3;
a=i+2;
output;
end;
run;
%let dsid=%sysfunc(open(a100));
%let num=%sysfunc(attrn(&dsid,nobs));
%let rc=%sysfunc(close(&dsid));
%macro test;
%if &num < 10 %then %do;
%let diff=%sysevalf(10-&num);
data a(drop=j);
set a end=last;
output;
if last then do;
call missing(of _all_);
do j=1 to &diff;
output;
end;
end;
run;
%end;
%mend test;
/* Invoke the macro */
%test
These sample files and code examples are provided by SAS Institute
Inc. "as is" without warranty of any kind, either express or implied, including
but not limited to the implied warranties of merchantability and fitness for a
particular purpose. Recipients acknowledge and agree that SAS Institute shall
not be liable for any damages whatsoever arising out of their use of this material.
In addition, SAS Institute will provide no support for the materials contained herein.
Obs i a
1 1 3
2 2 4
3 3 5
4 . .
5 . .
6 . .
7 . .
8 . .
9 . .
10 . .
Date Modified: | 2014-12-02 15:36:34 |
Date Created: | 2014-12-02 12:43:07 |
Operating System and Release Information
SAS System | Base SAS | z/OS | 9.2 TS1M0 | |
Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.2 TS1M0 | |
Microsoft Windows Server 2003 Datacenter 64-bit Edition | 9.2 TS1M0 | |
Microsoft Windows Server 2003 Enterprise 64-bit Edition | 9.2 TS1M0 | |
Microsoft Windows XP 64-bit Edition | 9.2 TS1M0 | |
Microsoft® Windows® for x64 | 9.2 TS1M0 | |
Microsoft Windows Server 2003 Datacenter Edition | 9.2 TS1M0 | |
Microsoft Windows Server 2003 Enterprise Edition | 9.2 TS1M0 | |
Microsoft Windows Server 2003 Standard Edition | 9.2 TS1M0 | |
Microsoft Windows XP Professional | 9.2 TS1M0 | |
Windows Vista | 9.2 TS1M0 | |
Windows Vista for x64 | 9.2 TS1M0 | |
64-bit Enabled AIX | 9.2 TS1M0 | |
64-bit Enabled HP-UX | 9.2 TS1M0 | |
64-bit Enabled Solaris | 9.2 TS1M0 | |
HP-UX IPF | 9.2 TS1M0 | |
Linux | 9.2 TS1M0 | |
Linux for x64 | 9.2 TS1M0 | |
OpenVMS on HP Integrity | 9.2 TS1M0 | |
Solaris for x64 | 9.2 TS1M0 | |