Help using Base SAS procedures

How do I add data to an existing dataset

Reply
New User
Posts: 1

How do I add data to an existing dataset

Hello. I am new to SAS and apologize if this is elementary. I am using NHANES data and already have a dataset in place for a 3-year period. That said, I just found the same data I need for 3 more years. How do I add this data to my existing dataset?

 

Thank you!

Super User
Posts: 19,770

Re: How do I add data to an existing dataset

Posted in reply to naomimaisel

The operation is known as Appending, and it depends. 

 

If your data sets have the exact same data structure, including variable names/types then you can do an append. If not, you should ideally make them the same and then append. 

 

Append stacks data, adds more rows, same variables.

Merges bring the data side by side, adds more columns/variables.

 

For appending you can use PROC APPEND or SET in a Data step.

This is an example of an append, except I'm appending the same data twice.

 

data double_class;
set sashelp.class 
     sashelp.class;

run;
Super User
Posts: 3,250

Re: How do I add data to an existing dataset

Posted in reply to naomimaisel

A simple dataset concatenation where you stack all of the new data on top of the old data should do the trick:

 

data want;
  set existing new;
run;
Super User
Posts: 7,762

Re: How do I add data to an existing dataset

Posted in reply to naomimaisel

PROC APPEND or a DATA step with several datasets in the SET statement will do nicely.

The difference between the two methods is: the DATA step will do a complete rewrite of the dataset, while APPEND will append physically to the existing dataset.

APPEND is less tolerant about changes in the data structure, though.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super User
Posts: 5,424

Re: How do I add data to an existing dataset

Posted in reply to naomimaisel
A third option would be SQL INSERT INTO.
The downside is that you need to keep track of the column order.
The upside is that SQL is close to common knowledge. Performance is comparable with proc append.
Data never sleeps
Ask a Question
Discussion stats
  • 4 replies
  • 308 views
  • 0 likes
  • 5 in conversation