<?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: Not enough memory for proc transpose in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265104#M57844</link>
    <description>&lt;P&gt;Nope, that's it.&amp;nbsp; Sounds remedial when I say it but I'm not sure what to do.&lt;/P&gt;</description>
    <pubDate>Wed, 20 Apr 2016 14:22:03 GMT</pubDate>
    <dc:creator>Steelers_In_DC</dc:creator>
    <dc:date>2016-04-20T14:22:03Z</dc:date>
    <item>
      <title>Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265092#M57840</link>
      <description>&lt;P&gt;Good Morning All,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a solution that I've used in the past with smaller datasets, the current dataset I am working with has 350 'rules' and about 1 million records, so the transpose step isn't working due to the wide dataset that is produced.&amp;nbsp; I tried to split the original dataset up into 3rds but the 300,000 columns are still too much.&amp;nbsp; Below is a short example of what I am doing, any suggestions or different solutions are greatly appreciated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;infile cards dsd;&lt;BR /&gt;informat run_date reporting_month mmddyy10.;&lt;BR /&gt;format run_date reporting_month mmddyy10.;&lt;BR /&gt;input run_date reporting_month&amp;nbsp;&amp;nbsp; &amp;nbsp;_rule1 _rule2 _rule3;&lt;BR /&gt;cards;&lt;BR /&gt;04/20/2016,03/31/2016,.,1,0&lt;BR /&gt;04/20/2016,03/31/2016,1,1,1&lt;BR /&gt;04/20/2016,03/31/2016,1,1,1&lt;BR /&gt;04/20/2016,03/31/2016,1,1,0&lt;BR /&gt;04/20/2016,03/31/2016,.,0,0&lt;BR /&gt;;run;&lt;BR /&gt;&lt;BR /&gt;proc transpose data=have out=tran_have;by Run_Date reporting_month;var _:;&lt;BR /&gt;&lt;BR /&gt;data want(keep=Rule Fail_Total Run_Date reporting_month);&lt;BR /&gt;set tran_have;&lt;BR /&gt;Rule = substr(_NAME_,2,5);&lt;BR /&gt;Fail_Total = sum(of col:);&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2016 13:31:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265092#M57840</guid>
      <dc:creator>Steelers_In_DC</dc:creator>
      <dc:date>2016-04-20T13:31:34Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265097#M57841</link>
      <description>&lt;P&gt;Surely there will be another way to program this, without transposing the data.&amp;nbsp; It looks like you need to get some totals or subtotals for each run_date/reporting_month combination.&amp;nbsp; SAS has lots of ways to accomplish this.&amp;nbsp; It's probably best to start with a clean slate and describe the end result you would like, based on the original data.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2016 13:51:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265097#M57841</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-04-20T13:51:45Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265100#M57842</link>
      <description>&lt;P&gt;I have several datasets that have edits that need to be applied for governmental checks.&amp;nbsp; I'm working on the largest one now which is 1st lien mortgage data.&amp;nbsp; I wrote out 350+ rules like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;'_1_All Failures'n =1;&lt;BR /&gt;'_2_All Failures'n = missing(loan_closing_date);&lt;BR /&gt;'_2.1_All Failures'n = loan_closing_date &amp;gt; reporting_month;&lt;BR /&gt;if not missing(loan_closing_date) then do;&lt;BR /&gt;'_2.2_All Failures'n = loan_closing_date &amp;lt; Forty_years_ago;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I chose the name of the rules to coincide with a name provided by the government so I can join and get additional information downstream.&amp;nbsp; This produces a dataset with 558 variables by 987,144 rows.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2016 14:11:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265100#M57842</guid>
      <dc:creator>Steelers_In_DC</dc:creator>
      <dc:date>2016-04-20T14:11:00Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265103#M57843</link>
      <description>&lt;P&gt;OK, so what is your intent from that point?&amp;nbsp; It looks like you are getting the sum (for each reporting month/date) of each of your rule variables.&amp;nbsp; Is it more complex than that?&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2016 14:19:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265103#M57843</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-04-20T14:19:49Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265104#M57844</link>
      <description>&lt;P&gt;Nope, that's it.&amp;nbsp; Sounds remedial when I say it but I'm not sure what to do.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2016 14:22:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265104#M57844</guid>
      <dc:creator>Steelers_In_DC</dc:creator>
      <dc:date>2016-04-20T14:22:03Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265105#M57845</link>
      <description>&lt;P&gt;Here's what I get when I limit the population in the first step.&amp;nbsp; This is what I want:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="460"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="75"&gt;run_date&lt;/TD&gt;
&lt;TD width="114"&gt;reporting_month&lt;/TD&gt;
&lt;TD width="204"&gt;Rule&lt;/TD&gt;
&lt;TD width="67"&gt;Fail_Total&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;1_All Failures&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;2_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;2.1_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;2.2_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;2.4_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;3_All Failures&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;3.1_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;3.2_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;3.3_All Failures&lt;/TD&gt;
&lt;TD&gt;11&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;3.5_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;4.1_All Failures&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;5.1_All Failures&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;5.2_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;6.2_All Failures&lt;/TD&gt;
&lt;TD&gt;145&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;6.3_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;7.2_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;8.1_All Failures&lt;/TD&gt;
&lt;TD&gt;23&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;8.2_All Failures&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;8.4_All Failures&lt;/TD&gt;
&lt;TD&gt;1595&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;9_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;9.1_All Failures&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;10.2_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;11_All Failures&lt;/TD&gt;
&lt;TD&gt;98919&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;11.1_All Failures&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;11.3_All Failures&lt;/TD&gt;
&lt;TD&gt;51&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;04/20/2016&lt;/TD&gt;
&lt;TD&gt;01/31/2016&lt;/TD&gt;
&lt;TD&gt;12_All Failures&lt;/TD&gt;
&lt;TD&gt;98765&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Wed, 20 Apr 2016 14:23:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265105#M57845</guid>
      <dc:creator>Steelers_In_DC</dc:creator>
      <dc:date>2016-04-20T14:23:53Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265106#M57846</link>
      <description>&lt;P&gt;It looks like your data set is sorted, so the BY statement should work:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc summary data=have;&lt;/P&gt;
&lt;P&gt;by run_date reporting month;&lt;/P&gt;
&lt;P&gt;var _rule1 _rule2 _rule3;&lt;/P&gt;
&lt;P&gt;output out=want (drop=_type_ _freq_) sum=;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Of course, the task of typing out the VAR statement is not so easy in real life.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2016 14:24:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265106#M57846</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-04-20T14:24:53Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265109#M57847</link>
      <description>&lt;P&gt;We're crossing paths on our posts, but a little additional processing would be needed:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data really_want;&lt;/P&gt;
&lt;P&gt;set want;&lt;/P&gt;
&lt;P&gt;array sums {350} /* long list of names here */;&lt;/P&gt;
&lt;P&gt;length rule_name $ 50;&lt;/P&gt;
&lt;P&gt;do _n_=1 to 350;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; rule_name = vname(sums{_n_});&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; total = sums{_n_};&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;keep reporting_month run_date rule_name total;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Where it is appropriate, you may need to fill in some missing values with zero.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2016 14:31:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265109#M57847</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-04-20T14:31:00Z</dc:date>
    </item>
    <item>
      <title>Re: Not enough memory for proc transpose</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265114#M57848</link>
      <description>&lt;P&gt;That is awesome, thank you so much for your help.&amp;nbsp; Much appreciated.&amp;nbsp; I will definitely work to become more familiar with proc summary!!!&amp;nbsp; By the way, no need to list the vars, that's why I started with an underscore.&amp;nbsp; The final product which works perfectly looks like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc summary data=FL_Rules;&lt;BR /&gt;by run_date reporting_month;&lt;BR /&gt;var _:;&lt;BR /&gt;output out=want (drop=_type_ _freq_ ) sum=;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc transpose data=want out=want_tran (rename=(col1=Fail_Total));by Run_Date reporting_month;var _:;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2016 14:50:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Not-enough-memory-for-proc-transpose/m-p/265114#M57848</guid>
      <dc:creator>Steelers_In_DC</dc:creator>
      <dc:date>2016-04-20T14:50:00Z</dc:date>
    </item>
  </channel>
</rss>

