<?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: How to split a dataset by each row in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158466#M30957</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The fastest way is using Hash Table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;



data _null_;
 if _n_ eq 1 then do;
&amp;nbsp; if 0 then set sashelp.class;
&amp;nbsp; declare hash h();
&amp;nbsp;&amp;nbsp; h.definekey('n');
&amp;nbsp;&amp;nbsp; h.definedata('name','age','weight','height');
&amp;nbsp;&amp;nbsp; h.definedone();
end;
set sashelp.class;
n+1;h.add();h.output(dataset: cats('_',n)); h.clear();
run;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 13 Aug 2014 13:08:10 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2014-08-13T13:08:10Z</dc:date>
    <item>
      <title>How to split a dataset by each row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158461#M30952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello I have the following dataset format:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="126" style="border: 1px solid #000000; width: 502px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R1&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R2&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R3&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R4&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R5&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;A&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;B&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;C&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;D&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;F&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;H&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;I&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;J&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;K&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;L&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;M&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;N&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;O&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;P&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;Q&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;R&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;S&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;T&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and I would like to create 4 new datasets photo1, photo2, photo3, photo4, etc:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="51" style="border: 1px solid #000000; width: 503px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R1&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R2&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R3&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R4&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R5&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;A&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;B&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;C&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;D&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="51" style="border: 1px solid #000000; width: 504px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R1&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R2&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R3&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R4&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;R5&lt;/STRONG&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;F&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;G&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;H&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;I&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;J&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;etc. I am not sure if this can be done using a BY statement some how or maybe through a proc append, etc. Any suggestions?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Aug 2014 19:56:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158461#M30952</guid>
      <dc:creator>spirto</dc:creator>
      <dc:date>2014-08-12T19:56:04Z</dc:date>
    </item>
    <item>
      <title>Re: How to split a dataset by each row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158462#M30953</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There's many ways, but I have to ask why, there's almost always a better way to deal with this situation.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sascommunity.org/wiki/Split_Data_into_Subsets" title="http://www.sascommunity.org/wiki/Split_Data_into_Subsets"&gt;Split Data into Subsets - sasCommunity&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Aug 2014 20:00:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158462#M30953</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-08-12T20:00:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to split a dataset by each row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158463#M30954</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's an example that splits the CLASS file into one row per file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It assumes that each file is for each name. Your exact code will vary by how you want to split the file. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set sashelp.class;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by name notsorted;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.name then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call execute("data row"||put(_n_,z2.)||"; set sashelp.class(where=(name='"||name||"'));run;");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Aug 2014 20:58:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158463#M30954</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-08-12T20:58:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to split a dataset by each row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158464#M30955</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data have;&lt;BR /&gt;input R1 $ R2 $ R3 $ R4 $ R5 $;&lt;BR /&gt;CNT+1;&lt;BR /&gt;datalines;&lt;BR /&gt;A B C D E&lt;BR /&gt;F G H I J&lt;BR /&gt;K L M N O&lt;BR /&gt;P Q R S T&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;proc sql;&lt;BR /&gt;select max(cnt) into :cnt from have;&lt;BR /&gt;quit;&lt;BR /&gt;%macro sets;&lt;BR /&gt;data&lt;BR /&gt;%do i=1 %to &amp;amp;cnt;&lt;BR /&gt;photo&amp;amp;i&lt;BR /&gt;%end;&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;set have(drop=cnt);&lt;/P&gt;&lt;P&gt;if _n_=1 then output photo1;&lt;BR /&gt;%do i = 2 %to &amp;amp;cnt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if _n_=&amp;amp;i then output photo&amp;amp;i;&lt;BR /&gt; %end;&lt;BR /&gt;run;&lt;BR /&gt;%mend sets;&lt;BR /&gt;%sets&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Aug 2014 21:01:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158464#M30955</guid>
      <dc:creator>stat_sas</dc:creator>
      <dc:date>2014-08-12T21:01:09Z</dc:date>
    </item>
    <item>
      <title>Re: How to split a dataset by each row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158465#M30956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you both!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Aug 2014 01:43:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158465#M30956</guid>
      <dc:creator>spirto</dc:creator>
      <dc:date>2014-08-13T01:43:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to split a dataset by each row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158466#M30957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The fastest way is using Hash Table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;



data _null_;
 if _n_ eq 1 then do;
&amp;nbsp; if 0 then set sashelp.class;
&amp;nbsp; declare hash h();
&amp;nbsp;&amp;nbsp; h.definekey('n');
&amp;nbsp;&amp;nbsp; h.definedata('name','age','weight','height');
&amp;nbsp;&amp;nbsp; h.definedone();
end;
set sashelp.class;
n+1;h.add();h.output(dataset: cats('_',n)); h.clear();
run;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Aug 2014 13:08:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-split-a-dataset-by-each-row/m-p/158466#M30957</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-08-13T13:08:10Z</dc:date>
    </item>
  </channel>
</rss>

