Desktop productivity for business analysts and programmers

How to create new dataset from existing datasets with certain conditions

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

How to create new dataset from existing datasets with certain conditions

I use SAS E.G. version 4.3.

There are datasets (in a folder called archive) where the names are something like this: "table_contents_[year]", where [year] = 2012, 2013, 2014, ...

For example: table_contents_2012, table_contents_2013, ..., table_contents_2016.

One of the variables of these datasets is a date variable that contains dates for that certain year.

 

I want to put the data from these datasets into one new dataset, but selecting only data as from a certain year or a certain date. How can I do this?

 

With the statement below, I can extract and put the data from ALL datasets with name "tablecontents_[year]" into a new dataset.

But I don't know how I can select data that are for example greater than or equal to year 2015 or 10SEP2015?

 

%let listOfDataTables =;

proc sql noprint;
select compress("arch." || memname)
into :listOfDataTables separated by ' ' 
from sashelp.vtable
where libname=upcase("arch") and upcase(memname) like 'tablecontents*_%' escape '*';
quit;

 

 


Accepted Solutions
Solution
‎02-23-2017 02:43 AM
Super User
Posts: 9,874

Re: How to create new dataset from existing datasets with certain conditions

where libname=upcase("arch") and input(scan(memname,-1,'_') ,best8.) gt 2015

View solution in original post


All Replies
Super User
Super User
Posts: 7,720

Re: How to create new dataset from existing datasets with certain conditions

First, its not a good idea to split same data up into multiplpe datasets, this just makes your life harder.  Set all your data together and have year as a column:

data want;
  length v $50;
  set table_contents_: indsname=tmp;
  v=tmp;
run;

You can process indsname to get year.  You can then simply where clause this one dataset rather than trying to loop over many.

Solution
‎02-23-2017 02:43 AM
Super User
Posts: 9,874

Re: How to create new dataset from existing datasets with certain conditions

where libname=upcase("arch") and input(scan(memname,-1,'_') ,best8.) gt 2015
New Contributor
Posts: 2

Re: How to create new dataset from existing datasets with certain conditions

This works. Thank you!

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 435 views
  • 1 like
  • 3 in conversation