Dear all,
I's like to create a new data set that has exactely the same fields as an existing data set. And the fields should all have the same definitions, i.e. char/num and their lengths. How can I do this? Is it possible to "copy" a dataset without its data rows?
(After I have this empty new dataset I'd like to insert just one row with the values I assign.)
Best wishes,
Eva
I found a solution in the manaul for prc sql and the create table statement:
proc sql;
/* create same table but empty */
create table work.calss like sashelp.class;
/* insert new row */
insert into work.class
set
name='Eva',
sex='F',
age='99',
height=123,
weight=888;
quit;
Like works nice, but it does not copy any index information to the target table.
If you want that, you can use PROC APPEND with a non existing BASE table.
This will result that the BASE table will be created, using the metadata from the DATA table.
Proc Append Base=Want Data=Have(obs=0);
Run;
/Linus
If using Datastep, you could also try:
data have;
name='Eva1';
sex='F1';
age='991';
height=1231;
weight=8881;
run;
data want;
if 0 then set have;
name='Eva';
sex='F';
age='99';
height=123;
weight=888;
run;
Regards,
Haikuo
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.