<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Conditionally reading in very large data sets from raw data in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85902#M18428</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another possibility is to create a format based on the patient IDs in PATLIST.&amp;nbsp; No sorting is necessary, but you need enough memory to be able to hold the format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data keep_these;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set patlist (keep=patid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; retain fmtname '$keep'&amp;nbsp; label 'Keep Me';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rename patid=start;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format cntlin=keep_these;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This creates a format that tanslates the desired patient IDs into the words Keep Me.&amp;nbsp; It assumes PATID is character (if it isn't, remove the dollar sign from the value of FMTNAME).&amp;nbsp; If the list is static, formats can be saved permanently for use by many later programs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Applying the format is easier:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; infile 'big.txt';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input @1 patid $10.&amp;nbsp; @;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if put(patid, $keep.) = 'Keep Me';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input ... the remaining variables ...;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 04 Oct 2012 17:03:53 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2012-10-04T17:03:53Z</dc:date>
    <item>
      <title>Conditionally reading in very large data sets from raw data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85900#M18426</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have two very large datasets that I am working with.&amp;nbsp; The first dataset (1.6 million records) has client ids.&amp;nbsp; The second data set, which is a .txt file with over 4 million records, has the demographic information for all the clients we have ever seen.&amp;nbsp; I need to create a SAS dataset from the raw data file for only those 1.6 million people from the first dataset.&amp;nbsp; I have tried this a couple of ways.&amp;nbsp; The first method was very simple because I was in a hurry.&amp;nbsp; I just simply read in all the demographics data and saved it.&amp;nbsp; This is obviously not the best answer because it has a lot on unneccessary data and takes up a huge amount of space (40G). The second method I tried worked to reduce the file size but increased the processing time and memory usage significantly.&amp;nbsp; I created macros for every unique clientid from ds1 and then did the input statement for ds2 in 2 phases.&amp;nbsp; The first input statement only brought the ID variable in and then compared it to macro variables to see if it existed.&amp;nbsp; if it was a macro variable then all the other data was brought in. If not, then the record was ignored.&amp;nbsp; It took 16 hours alone to create the macro variables, not to mention the rest of the ds2 creation. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question is... Does anyone have a better method of conditionally creating a SAS dataset from raw data?&amp;nbsp; One that might be more time and memory efficient while preserving space in the long run.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any and all thoughts are appreciated. &lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2012 16:42:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85900#M18426</guid>
      <dc:creator>miriamm</dc:creator>
      <dc:date>2012-10-04T16:42:50Z</dc:date>
    </item>
    <item>
      <title>Re: Conditionally reading in very large data sets from raw data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85901#M18427</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could define the INPUT statements as a VIEW.&amp;nbsp; Then if your raw data is sorted by ID you could merge this view with the list of patients and only output the selected records.&lt;/P&gt;&lt;P&gt;data big / view=big;&lt;/P&gt;&lt;P&gt;&amp;nbsp; infile 'big.txt' ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input patid ...... ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ....&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data want ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge big patlist(in=in1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; by patid;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if in1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If it is not loaded then you could use a hash or SET with and index on the list of patients to determine which records to output when reading the big raw data file.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2012 16:55:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85901#M18427</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-10-04T16:55:45Z</dc:date>
    </item>
    <item>
      <title>Re: Conditionally reading in very large data sets from raw data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85902#M18428</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another possibility is to create a format based on the patient IDs in PATLIST.&amp;nbsp; No sorting is necessary, but you need enough memory to be able to hold the format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data keep_these;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set patlist (keep=patid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; retain fmtname '$keep'&amp;nbsp; label 'Keep Me';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; rename patid=start;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format cntlin=keep_these;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This creates a format that tanslates the desired patient IDs into the words Keep Me.&amp;nbsp; It assumes PATID is character (if it isn't, remove the dollar sign from the value of FMTNAME).&amp;nbsp; If the list is static, formats can be saved permanently for use by many later programs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Applying the format is easier:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; infile 'big.txt';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input @1 patid $10.&amp;nbsp; @;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if put(patid, $keep.) = 'Keep Me';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input ... the remaining variables ...;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2012 17:03:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85902#M18428</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-10-04T17:03:53Z</dc:date>
    </item>
    <item>
      <title>Re: Conditionally reading in very large data sets from raw data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85903#M18429</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Miriamm,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The best way I can recommend would be using Hash Object for the 1.6M lookup table, while reading through your 4M records text file. for example:&lt;/P&gt;&lt;P&gt;data Macth;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; infile file-specification; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input clientid @;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _N_ = 1 then &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash h(dataset:'lookup');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.defineKey('name');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.defineDone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* A match was found */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if h.find() = 0 then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Additional Statements */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2012 17:54:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85903#M18429</guid>
      <dc:creator>AhmedAl_Attar</dc:creator>
      <dc:date>2012-10-04T17:54:24Z</dc:date>
    </item>
    <item>
      <title>Re: Conditionally reading in very large data sets from raw data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85904#M18430</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I agree with Ahmed on using hash. Here is a working example. hth.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Consolas, Courier New; font-size: 90%; line-height: 1.1;"&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;ods&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;_all_&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;close&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;ods&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;listing&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;options&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;nocenter&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN&gt; seed = 1234567;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* 1.6M id^s */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;data&lt;/STRONG&gt;&lt;SPAN&gt; one;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;do&lt;/SPAN&gt;&lt;SPAN&gt; id = &lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;1&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;to&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;1.6e6&lt;/STRONG&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;output&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;end&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;run&lt;/STRONG&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* 4M id^s and a var written out to a text file */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;data&lt;/STRONG&gt;&lt;SPAN&gt; two;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;do&lt;/SPAN&gt;&lt;SPAN&gt; id = &lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;1&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;to&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;4e6&lt;/STRONG&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = ceil(&lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;4e6&lt;/STRONG&gt;&lt;SPAN&gt; * ranuni(&amp;amp;seed));&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;output&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;end&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;run&lt;/STRONG&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;data&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;_null_&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;file&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;'work.temp.two.source'&lt;/SPAN&gt;&lt;SPAN&gt; catalog;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;set&lt;/SPAN&gt;&lt;SPAN&gt; two;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;put&lt;/SPAN&gt;&lt;SPAN&gt; (id x) (&lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;7.0&lt;/STRONG&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;run&lt;/STRONG&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* reading only the two obs whose id matches first -- using hash */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;data&lt;/STRONG&gt;&lt;SPAN&gt; three;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; _n_ = &lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;1&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;then&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;do&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #ff0000;"&gt;dcl&lt;/SPAN&gt;&lt;SPAN&gt; hash h(dataset:&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"one"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.definekey(&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;'id'&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h.definedone();&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;call&lt;/SPAN&gt;&lt;SPAN&gt; missing(id);&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;end&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;infile&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;'work.temp.two.source'&lt;/SPAN&gt;&lt;SPAN&gt; catalog;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;input&lt;/SPAN&gt;&lt;SPAN&gt; id &lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;7.0&lt;/STRONG&gt;&lt;SPAN&gt; @;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; h.find() = &lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;0&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;then&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;do&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;input&lt;/SPAN&gt;&lt;SPAN&gt; x &lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;7.0&lt;/STRONG&gt;&lt;SPAN&gt; @;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;output&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;end&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;input&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;run&lt;/STRONG&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* check */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;proc&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;sort&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt;=three;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;by&lt;/SPAN&gt;&lt;SPAN&gt; id;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;run&lt;/STRONG&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;proc&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;compare&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;base&lt;/SPAN&gt;&lt;SPAN&gt;=two(where=(id&amp;lt;=&lt;/SPAN&gt;&lt;STRONG style="color: #008080;"&gt;1.6e6&lt;/STRONG&gt;&lt;SPAN&gt;)) &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;compare&lt;/SPAN&gt;&lt;SPAN&gt;=three;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #000080;"&gt;run&lt;/STRONG&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;/* on lst&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;&amp;nbsp; NOTE: No unequal values were found. All values compared are exactly equal&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2012 18:35:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85904#M18430</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2012-10-04T18:35:00Z</dc:date>
    </item>
    <item>
      <title>Re: Conditionally reading in very large data sets from raw data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85905#M18431</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much for all the responses.&amp;nbsp; I tried many of them and the hash objects worked the best.&amp;nbsp; I tried to do the flag on the answer but it was not letting me so I thought I would just reply with a comment.&amp;nbsp; This groups help is always appreciated.&amp;nbsp;&amp;nbsp; I was able to process the tables in less than 30 minutes using the hash object.&amp;nbsp; A far cry from the several days it took to run when I first inherited the program!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Jan 2013 21:09:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Conditionally-reading-in-very-large-data-sets-from-raw-data/m-p/85905#M18431</guid>
      <dc:creator>miriamm</dc:creator>
      <dc:date>2013-01-23T21:09:47Z</dc:date>
    </item>
  </channel>
</rss>

